[PR #317] [MERGED] Make TRust-DNS fast #1365

Closed
opened 2026-03-16 02:02:25 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/hickory-dns/hickory-dns/pull/317
Author: @bluejekyll
Created: 12/17/2017
Status: Merged
Merged: 12/31/2017
Merged by: @bluejekyll

Base: masterHead: make_tdns_fast


📝 Commits (10+)

  • 18e6bbb use proper release targets in bench tests
  • 093f9d2 split BinEncodable off from BinSerializable
  • 817dabc restructure server to always borrow Records for response
  • dd49394 improve edns serialization performance
  • e55aac6 improve Response Query encoding
  • 9a1dd64 rename BinSerializable to BinDecodable
  • c8ceef3 fix place writing
  • f4680e2 change pointer management to use offsets
  • 7db9d53 fix Place for new write_slice method
  • fb92b74 speed up lowercase method

📊 Changes

64 files changed (+2646 additions, -956 deletions)

View changed files

📝 Cargo.lock (+190 -135)
client/benches/lower_name_benches.rs (+80 -0)
client/src/op/lower_query.rs (+83 -0)
📝 client/src/op/mod.rs (+2 -0)
📝 client/src/op/update_message.rs (+10 -34)
📝 client/src/rr/dnssec/keypair.rs (+1 -1)
client/src/rr/lower_name.rs (+281 -0)
📝 client/src/rr/mod.rs (+4 -1)
📝 client/src/rr/rr_key.rs (+12 -5)
📝 client/src/serialize/binary/mod.rs (+4 -1)
📝 client/src/serialize/txt/master.rs (+2 -2)
📝 compatibility-tests/tests/sig0_tests.rs (+11 -2)
📝 integration-tests/src/authority.rs (+1 -1)
📝 integration-tests/src/lib.rs (+41 -10)
📝 integration-tests/tests/authority_tests.rs (+37 -32)
📝 integration-tests/tests/catalog_tests.rs (+55 -20)
📝 integration-tests/tests/client_future_tests.rs (+4 -4)
📝 integration-tests/tests/client_tests.rs (+3 -3)
📝 integration-tests/tests/lookup_tests.rs (+2 -2)
📝 integration-tests/tests/secure_client_handle_tests.rs (+1 -1)

...and 44 more files

📄 Description

All of these changes make the TRust-DNS named faster than BIND9 on my machine. It's an arbitrary goal, but fun.

There are some additional changes coming to clean up the Name changes, I don't like the way those look at the moment.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/hickory-dns/hickory-dns/pull/317 **Author:** [@bluejekyll](https://github.com/bluejekyll) **Created:** 12/17/2017 **Status:** ✅ Merged **Merged:** 12/31/2017 **Merged by:** [@bluejekyll](https://github.com/bluejekyll) **Base:** `master` ← **Head:** `make_tdns_fast` --- ### 📝 Commits (10+) - [`18e6bbb`](https://github.com/hickory-dns/hickory-dns/commit/18e6bbbf3e17b59af7145da67f21f65f9c461f9e) use proper release targets in bench tests - [`093f9d2`](https://github.com/hickory-dns/hickory-dns/commit/093f9d2a372575218e27e9380f97d87f6beb78ec) split BinEncodable off from BinSerializable - [`817dabc`](https://github.com/hickory-dns/hickory-dns/commit/817dabcb8ddccaa6e07629ce65c2bfdd22364379) restructure server to always borrow Records for response - [`dd49394`](https://github.com/hickory-dns/hickory-dns/commit/dd4939430340585ea44b4f60511541f44903b5b1) improve edns serialization performance - [`e55aac6`](https://github.com/hickory-dns/hickory-dns/commit/e55aac6620ee7d67e7d466054b4b37ede29cf218) improve Response Query encoding - [`9a1dd64`](https://github.com/hickory-dns/hickory-dns/commit/9a1dd64c269828ccac4fae4749772890fbb971e8) rename BinSerializable to BinDecodable - [`c8ceef3`](https://github.com/hickory-dns/hickory-dns/commit/c8ceef306167d74bba0205b0c7612eb9ab7a9cef) fix place writing - [`f4680e2`](https://github.com/hickory-dns/hickory-dns/commit/f4680e2cd07e4017ca1e32c7698a8953a2b6f6ba) change pointer management to use offsets - [`7db9d53`](https://github.com/hickory-dns/hickory-dns/commit/7db9d53b12be0314cbbf438d6fd8b964588c749f) fix Place for new write_slice method - [`fb92b74`](https://github.com/hickory-dns/hickory-dns/commit/fb92b74bc29aef97c6eb51b0d68b3f33df1cc8da) speed up lowercase method ### 📊 Changes **64 files changed** (+2646 additions, -956 deletions) <details> <summary>View changed files</summary> 📝 `Cargo.lock` (+190 -135) ➕ `client/benches/lower_name_benches.rs` (+80 -0) ➕ `client/src/op/lower_query.rs` (+83 -0) 📝 `client/src/op/mod.rs` (+2 -0) 📝 `client/src/op/update_message.rs` (+10 -34) 📝 `client/src/rr/dnssec/keypair.rs` (+1 -1) ➕ `client/src/rr/lower_name.rs` (+281 -0) 📝 `client/src/rr/mod.rs` (+4 -1) 📝 `client/src/rr/rr_key.rs` (+12 -5) 📝 `client/src/serialize/binary/mod.rs` (+4 -1) 📝 `client/src/serialize/txt/master.rs` (+2 -2) 📝 `compatibility-tests/tests/sig0_tests.rs` (+11 -2) 📝 `integration-tests/src/authority.rs` (+1 -1) 📝 `integration-tests/src/lib.rs` (+41 -10) 📝 `integration-tests/tests/authority_tests.rs` (+37 -32) 📝 `integration-tests/tests/catalog_tests.rs` (+55 -20) 📝 `integration-tests/tests/client_future_tests.rs` (+4 -4) 📝 `integration-tests/tests/client_tests.rs` (+3 -3) 📝 `integration-tests/tests/lookup_tests.rs` (+2 -2) 📝 `integration-tests/tests/secure_client_handle_tests.rs` (+1 -1) _...and 44 more files_ </details> ### 📄 Description All of these changes make the TRust-DNS named faster than BIND9 on my machine. It's an arbitrary goal, but fun. There are some additional changes coming to clean up the `Name` changes, I don't like the way those look at the moment. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-03-16 02:02:25 +03:00
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#1365
No description provided.