nonymous + bore(1): DNS toys for Rust
Lessons learned from writing nonymous, an embedded-friendly DNS library, and bore(1), a DNS query tool.
Lessons learned from writing nonymous, an embedded-friendly DNS library, and bore(1), a DNS query tool.
I recently decided to learn more about Rust, and wrote a high performance RaptorQ (RFC6330) library. RaptorQ is a fountain code, and the core of the algorithm is a lot of matrix math over GF(256) – which translates into lots of XORs and reads from lookup tables. After getting the initial implementation working, I set about optimizing it. Below is a journal of the steps I took to profile and optimize the implementation.