⚠️ Breaking Changes
- iroh
- removed
iroh::test_utils::create_dns_resolver
is removed, useiroh::dns::DnsResolver::new
insteadiroh::dns::resolver
andiroh::dns::default_resolver
are removed. There is no static, global DNS resolver anymore. If you want to share a DNS resolver between endpoints, create the resolver yourself withiroh::dns::DnsResolver::new
and clone it into the endpoint builders (inEndpointBuilder::dns_resolver
). If you want to reuse the DNS resolver from an endpoint, you can access it withEndpoint::dns_resolver
and clone it to wherever you need it.iroh::dns::node_info::{IrohAttr, TxtAttrs, node_id_from_hickory_name}
are no longer public. Useiroh::dns::DnsResolver::lookup_node_by_id
oriroh::dns::DnsResolver::lookup_node_by_domain_name
to lookup node info from DNS.iroh::dns::node_info::{to_z32, from_z32}
are removed. Use the methods oniroh::dns::node_info::NodeIdExt
trait instead.iroh::dns::ResolverExt
is removed. Use the methods oniroh::dns::DnsResolver
instead.iroh::discovery::Discovery::publish
now takesdata: &NodeData
as its single argument.iroh::discovery::NodeData
is a re-export ofiroh_relay::dns::node_info::NodeData
, and contains relay URL and direct addresses. See docs forNodeData
for details.iroh::Endpoint::connect_with
was removed, useiroh::Endpoint::connect_with_opts
instead
- changed
iroh::dns::DnsResolver
used to be a type alias and now is a reexport ofiroh_relay::dns::DnsResolver
structiroh::dns::node_info
module is now a reexport ofiroh_relay::dns::node_info
iroh::discovery::dns::{N0_DNS_NODE_ORIGIN_PROD, N0_DNS_NODE_ORIGIN_STAGING}
are now reexports ofiroh_relay::dns::{N0_DNS_NODE_ORIGIN_PROD, N0_DNS_NODE_ORIGIN_STAGING}
- The methods in
iroh::dns::DnsResolver
now take animpl ToString
instead ofimpl hickory_proto::rr::domain::IntoName
for theirhost
argument iroh::discovery::DiscoveryItem
no longer has any public fields. There are now getters for the contained data, and constructors for createing aDiscoveryItem
from aNodeInfo
.iroh_relay::dns::node_info::NodeInfo
is changed.NodeInfo::new
now has a singleNodeId
argument. UseNodeInfo::with_direct_addresses
andNodeInfo::with_relay_url
to set addresses and relay URL. Alternatively, useNodeInfo::from_parts
and pass aNodeData
struct.NodeInfo
now has two public fieldsnode_id: NodeId
anddata: NodeData
, and setter and getter methods for the relay URL and direct addresses.
iroh::discovery::pkarr::PkarrPublisher::update_addr_info
now takes aNodeData
argumentiroh::endpoint::Connection::into_0rtt
now returnsiroh::endpoint::ZeroRttAccepted
, instead ofiroh_quinn::ZeroRttAccepted
- removed
⛰️ Features
- (iroh) Enable applications to establish 0-RTT connections (#3163) - (f0abede)
- (iroh) Add subscription stream to watch all discovery results (#3181) - (695f7c1)
- (iroh) Publish and resolve user-defined data in discovery (#3176) - (ac78cf2)
- (iroh) Make
iroh
compile towasm32-unknown-unknown
(#3189) - (247b891) - (iroh-net-report) Support wasm32 building & running (#3139) - (6f923a3)
- (iroh-relay) Make
Endpoint::close
faster by aborting QAD connections faster (#3182) - (f640e83)
🐛 Bug Fixes
- (iroh) Allow gracefully closing connections (#3170) - (d9a5b8e)
- (iroh-relay) Fix the number of active relay connections (#3194) - (397d08d)
- (iroh-relay) Bring back unique node counts (#3197) - (892c767)
- Update hickory resolver to 0.25.0-.alpha.5 (#3178) - (a4fcaaa)
🚜 Refactor
- (iroh) Store quic config, instead of recreating (#3171) - (9eccb05)
- [breaking] Use a single DNS resolver (#3167) - (c39b998)
- [breaking] Streamline discovery and node info types (#3175) - (3e3798f)