[PR #1337] [CLOSED] Streaming API for Resolver #2223

Closed
opened 2026-03-16 07:43:54 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/hickory-dns/hickory-dns/pull/1337
Author: @bluejekyll
Created: 1/3/2021
Status: Closed

Base: mainHead: streaming-api


📝 Commits (3)

  • a5fc277 remove small-vec from DnsResponse and begin transition to Streaming API
  • 99d9199 rename DnsResponseFuture to DnsResponseStream
  • f689a14 convert DnsHandle to streaming api

📊 Changes

18 files changed (+302 additions, -259 deletions)

View changed files

📝 Cargo.lock (+1 -0)
📝 crates/client/src/client/async_client.rs (+10 -6)
📝 crates/client/src/client/async_secure_client.rs (+2 -2)
📝 crates/client/src/client/client.rs (+31 -11)
📝 crates/client/src/client/memoize_client_handle.rs (+43 -15)
📝 crates/client/src/client/rc_future.rs (+43 -29)
📝 crates/https/src/https_client_stream.rs (+11 -6)
📝 crates/proto/Cargo.toml (+1 -0)
📝 crates/proto/src/tests/udp.rs (+5 -8)
📝 crates/proto/src/udp/udp_client_stream.rs (+8 -11)
📝 crates/proto/src/xfer/dns_exchange.rs (+4 -4)
📝 crates/proto/src/xfer/dns_handle.rs (+2 -2)
📝 crates/proto/src/xfer/dns_multiplexer.rs (+29 -45)
📝 crates/proto/src/xfer/dns_response.rs (+36 -61)
📝 crates/proto/src/xfer/dnssec_dns_handle.rs (+33 -13)
📝 crates/proto/src/xfer/mod.rs (+17 -19)
📝 crates/proto/src/xfer/retry_dns_handle.rs (+21 -13)
📝 crates/resolver/src/caching_client.rs (+5 -14)

📄 Description

Migrate resolver to streaming API

  • remove SmallVec from DNSResponse
  • Change DnsHandle to return Stream on send
  • Use channel instead of oneshot for DnsResponseFuture
  • Introduce Resolver streaming API
  • Deprecate old Resolver API?

fixes: #383

See discussion on common DNS api for Reqwest here: https://github.com/seanmonstar/reqwest/issues/1125


🔄 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/1337 **Author:** [@bluejekyll](https://github.com/bluejekyll) **Created:** 1/3/2021 **Status:** ❌ Closed **Base:** `main` ← **Head:** `streaming-api` --- ### 📝 Commits (3) - [`a5fc277`](https://github.com/hickory-dns/hickory-dns/commit/a5fc277ec087ce9c4b74e3dbfdf4be6d3343d6ab) remove small-vec from DnsResponse and begin transition to Streaming API - [`99d9199`](https://github.com/hickory-dns/hickory-dns/commit/99d91995ae170ab60512a5354fa5c64ecf63c281) rename DnsResponseFuture to DnsResponseStream - [`f689a14`](https://github.com/hickory-dns/hickory-dns/commit/f689a14de77a3528cfcd9c2dc34835a43a558ab0) convert DnsHandle to streaming api ### 📊 Changes **18 files changed** (+302 additions, -259 deletions) <details> <summary>View changed files</summary> 📝 `Cargo.lock` (+1 -0) 📝 `crates/client/src/client/async_client.rs` (+10 -6) 📝 `crates/client/src/client/async_secure_client.rs` (+2 -2) 📝 `crates/client/src/client/client.rs` (+31 -11) 📝 `crates/client/src/client/memoize_client_handle.rs` (+43 -15) 📝 `crates/client/src/client/rc_future.rs` (+43 -29) 📝 `crates/https/src/https_client_stream.rs` (+11 -6) 📝 `crates/proto/Cargo.toml` (+1 -0) 📝 `crates/proto/src/tests/udp.rs` (+5 -8) 📝 `crates/proto/src/udp/udp_client_stream.rs` (+8 -11) 📝 `crates/proto/src/xfer/dns_exchange.rs` (+4 -4) 📝 `crates/proto/src/xfer/dns_handle.rs` (+2 -2) 📝 `crates/proto/src/xfer/dns_multiplexer.rs` (+29 -45) 📝 `crates/proto/src/xfer/dns_response.rs` (+36 -61) 📝 `crates/proto/src/xfer/dnssec_dns_handle.rs` (+33 -13) 📝 `crates/proto/src/xfer/mod.rs` (+17 -19) 📝 `crates/proto/src/xfer/retry_dns_handle.rs` (+21 -13) 📝 `crates/resolver/src/caching_client.rs` (+5 -14) </details> ### 📄 Description Migrate resolver to streaming API - [x] remove SmallVec from DNSResponse - [ ] Change DnsHandle to return Stream on `send` - [ ] Use channel instead of oneshot for DnsResponseFuture - [ ] Introduce Resolver streaming API - [ ] Deprecate old Resolver API? fixes: #383 See discussion on common DNS api for Reqwest here: https://github.com/seanmonstar/reqwest/issues/1125 --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-03-16 07:43:54 +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#2223
No description provided.