Async DNS

(flak.tedunangst.com)

Comments

albertzeyer 12 December 2025
The first linked article was recently discussed here: RIP pthread_cancel (https://news.ycombinator.com/item?id=45233713)

In that discussion, most of the same points as in this article were already discussed, specifically some async DNS alternatives.

See also here the discussion: https://github.com/crystal-lang/crystal/issues/13619

dweekly 21 hours ago
I was able in an afternoon to implement a pretty decent completely async Swift DNS resolver client for my app. DNS clients are simple enough to build that rolling your own async is not a big deal anymore.

Yes, there is separate work to discern what DNS server the system is currently using: on macOS this requires a call to an undocumented function in libSystem - that both Chromium and Tailscale use!

btown 22 hours ago
For those using it in Python, Gevent provides a pluggable set of DNS resolvers that monkey-patch the standard library's functions for async/cooperative use, including one built on c-ares: https://www.gevent.org/dns.html
cryptonector 15 hours ago
I'm digging dns.c and asr. I might get dns.c building and use it.
javantanna 12 December 2025
Just curious how you approached performance bottlenecks — anything surprising you discovered while testing?
brcmthrowaway 22 hours ago
Who can fix getaddrinfo?
01HNNWZ0MV43FF 12 December 2025
It's weird to me that event-based DNS using epoll or similar doesn't have a battle-tested implementation. I know it's harder to do in C than in Rust but I'm pretty sure that's what Hickory does internally.
jupp0r 18 hours ago
libuv? libevent?
benatkin 23 hours ago