[GH-ISSUE #1355] General purpose DNS parsing library #655

Closed
opened 2026-03-15 23:42:19 +03:00 by kerem · 3 comments
Owner

Originally created by @vorner on GitHub (Jan 14, 2021).
Original GitHub issue: https://github.com/hickory-dns/hickory-dns/issues/1355

Hello

I'm in a need for a library that is able to parse packets as seen on network for some analytical reasons (not acting as a server or client, just looking at the packets already there). From what I browse through the docs, the trust-dns-proto would probably be just what I need.

However, the documentation specifically says it is not really meant to be used by others and that there might be breaking changes, etc.

So what I would like to know is, how large the breakage might get between versions, or if there's some long-term vision to, besides having a client and server implementations, to also provide some kind of „General purpose parsing/manipulation library“ thing, or if you would rather point me to some different library for these purposes.

Originally created by @vorner on GitHub (Jan 14, 2021). Original GitHub issue: https://github.com/hickory-dns/hickory-dns/issues/1355 Hello I'm in a need for a library that is able to parse packets as seen on network for some analytical reasons (not acting as a server or client, just looking at the packets already there). From what I browse through the docs, the `trust-dns-proto` would probably be just what I need. However, the documentation specifically says it is not really meant to be used by others and that there might be breaking changes, etc. So what I would like to know is, how large the breakage might get between versions, or if there's some long-term vision to, besides having a client and server implementations, to also provide some kind of „General purpose parsing/manipulation library“ thing, or if you would rather point me to some different library for these purposes.
kerem 2026-03-15 23:42:19 +03:00
Author
Owner

@bluejekyll commented on GitHub (Jan 14, 2021):

Thanks for the question.

  1. trust-dns-proto is absolutely the crate you want to use for what you've described.

  2. On the documentation, we've had that verbiage in place since when we originally split everything into multiple crates a few years ago. At that point, we were concerned about potentially restricting the project to forward compatibility in the proto layer, and slow down development. So we wanted to give guidance that folks who depend on it directly might experience more breaking changes than would occur with the other higher-level crates. In practice I don't think there is any significant difference in that experience.

Edit: in short, I think it's fine to depend directly trust-dns-proto and maybe we should remove that comment from the README.

<!-- gh-comment-id:760427042 --> @bluejekyll commented on GitHub (Jan 14, 2021): Thanks for the question. 1) `trust-dns-proto` is absolutely the crate you want to use for what you've described. 2) On the documentation, we've had that verbiage in place since when we originally split everything into multiple crates a few years ago. At that point, we were concerned about potentially restricting the project to forward compatibility in the proto layer, and slow down development. So we wanted to give guidance that folks who depend on it directly might experience more breaking changes than would occur with the other higher-level crates. In practice I don't think there is any significant difference in that experience. Edit: in short, I think it's fine to depend directly `trust-dns-proto` and maybe we should remove that comment from the README.
Author
Owner

@vorner commented on GitHub (Jan 15, 2021):

Thank you! :-)

So should this track the update of README, or be closed?

<!-- gh-comment-id:760881739 --> @vorner commented on GitHub (Jan 15, 2021): Thank you! :-) So should this track the update of README, or be closed?
Author
Owner

@bluejekyll commented on GitHub (Jan 16, 2021):

We can leave this open until (you?) someone has some time to remove that text from the README.

<!-- gh-comment-id:761296622 --> @bluejekyll commented on GitHub (Jan 16, 2021): We can leave this open until (you?) someone has some time to remove that text from the README.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/hickory-dns#655
No description provided.