Split out DNS parser to be reusable
Suricata has a built-in DHCP parser written in Rust, https://github.com/OISF/suricata/tree/master/rust/src/dns
Splitting this out into a dedicated crate can allow leverage/collaboration between Suricata and other projects.
Updated by Jason Ish over 3 years ago
I'm not sure I would want to break out the DNS parser into its own repo, as that as extra overhead to the development process. But something possibly worth considering is breaking out some stuff, within the repo to their own crates. A while back I did this with the DHCP parser. It breaks out just the parsing, as the other parts of the DHCP module are pretty Suricata specific. The commit is now stale, but it still gets the idea across:
API stability also needs to be considered, as now we are free to refactor as needed. Publishing it as a reusable component may imply some level of stability, and we don't exactly follow semver. However, Cargo does make it easy to specify specific versions.