What does HackerNews think of trust-dns?

A Rust based DNS client, server, and resolver

Language: Rust

#55 in Rust
#3 in Rust
If you don't know what is Trust-DNS / Hickory DNS, this seems to be the repo: https://github.com/bluejekyll/trust-dns
You could run a local DNS server using something like https://github.com/bluejekyll/trust-dns . Or, you could install an NSS module to resolve names via the innernet client.
One of the great things about Rust is you can write platform-specific code for each platform and then package it all up into one interface so anyone can trivially use it. They get the simplicity of one interface and the performance of platform-specific code.

Though I haven't used it personally, it seems like the trust-dns project is one such example:

https://github.com/bluejekyll/trust-dns

> There is really no good reason for DNS servers to be written in C anymore.

I’m a little behind on docs, but we have a pretty decent start on one in Rust: https://github.com/bluejekyll/trust-dns

We still need an AXFR, IXFR, or replication solution.

Also, I haven’t had time to fuzz the zone parsers, so I can’t guarantee we’re resilient to the above yet, but the packet parsers are getting pretty widely used across multiple Rust projects now through the trust-dns-resolver library.

I chose to write my own: https://github.com/bluejekyll/trust-dns

And, it in theory can be used in other languages via C FFI as well, since it’s in Rust.

Apart from the difference in programming language, how does this compare to https://github.com/bluejekyll/trust-dns ?
For reference, what I have used that makes me claim this without being misleading (not necessarily all at the same time):

https://rocket.rs/, https://rusoto.github.io/rusoto/rusoto_core/index.html, https://docs.rs/postgres/0.15.1/postgres/, https://docs.rs/kafka/0.7.0/kafka/, https://docs.rs/reqwest/0.8.1/reqwest/, as well as many other supporting libraries. I've not run into many things where there isn't already support.

Also, in terms of networking, if your doing blocking IO, the stdlib is fine. Otherwise, from my experience, I really like https://tokio.rs/ for non-blocking (I know people are torn on this one) and have used it in my DNS impl, https://github.com/bluejekyll/trust-dns

For more info on web and Rust, this is a great page: http://www.arewewebyet.org/

I’ve been working on https://github.com/bluejekyll/trust-dns for a bit over two years now. About a year ago a new contributor added Windows build support and testing with AppVeyor, which was awesome.

Originally I started this project more for server side stuff, but recently have been very focused on a full resolver which could be used as a replacement for the OS system resolver.

A question for HN, what would you like to see in this context that would make a replacement resolver on Windows something you’d use? To be clear, it’s not something you could use dropin right now, it can only be used as an internal library to Rust at-the-moment, but I’ve been planning to start working on a daemon that could act as a caching system resolver in the next little bit.

A little Self promotion: TRust-DNS Resolver and Client support ED25519. Currently working through some issues on the signing logic in the Authority.

https://github.com/bluejekyll/trust-dns