⚠️ Breaking Changes
-
iroh-base
- removed
iroh_base::SharedSecret
iroh_base::DecryptionError
,iroh::DecryptionError
iroh_base::SecretKey::shared
iroh_base::SecretKey::generate_with_rng
, usegenerate
directlyiroh_base::SecretKey::to_openssh
iroh_base::SecretKey::from_openssh
iroh_base::base32
iroh_base::node_addr::AddrInfo
iroh_base::node_addr::AddrInfoOptions
iroh_base::relay_map
, useiroh_relay::relay_map
- changed
iroh_base::node_addr::NodeAddr
->iroh_base::NodeAddr
iroh_base::relay_url::RelayUrl
->iroh_base::RelayUrl
iroh_base::SecretKey::generate
now takes an rnganyhow::Error
is replaced with explicit errors forRelayUrl::from_str
anyhow::Error
is replaced with explicit errors forSharedSecret::open
iroh_base::PUBLIC_KEY_LENGTH
is moved from a top level constant toiroh_base::PublicKey::LENGTH
- keys are now formatted using
hex
lowercase by default - keys still parse base32 encoded, for better backwards compatibility
- introduce
ticket
feature foriroh_base
, to useiroh_base::ticket
iroh_base::key
exports moved toiroh_base
:iroh_base::{KeyParsingError, NodeId, PublicKey, SecretKey, SharedSecret, Signature, PUBLIC_KEY_LENGTH}
- removed
-
iroh-net-report
- changed
net_report::Client::get_report_channel
now takes anopts: net_report::Options
net_report::Client
will no longer bindUdpSocket
s when one is not provided for both STUN over IPv4 or STUN over IPv6.iroh_net_report::Client::get_report
takes new parameterquic_config: net_report::QuicConfig
iroh_net_report::Client::get_report_channel
takes new parameterquic_config: net_report::QuicConfig
- added
net_report::Client::get_report_with_options
- changed
iroh-relay
- changed
iroh_relay::HttpClientBuilder::address_family_selector
signature changedserver
is not a default feature iniroh-relay
anymore
ClientError
has a number of unused variants removed.
iroh
- MSRV changed to 1.81
- removed
iroh::protocol::Router::get_protocol
iroh::protocol::RouterBuilder::get_protocol
iroh::protocol::ProtocolMap::get_typed
iroh::protocol::IntoArcAny
iroh::dialer::Dialer
andiroh::dialer
iroh::tls
iroh::Endpoint::connect_by_node_id
, useiroh::Endpoint::connect
with aNodeId
instead.iroh::hash::{BlobFormat, Hash, HashAndFormat}
, useiroh_blobs::{BlobFormat, Hash, HashAndFormat}
iroh::ticket::BlobTicket
, useiroh_blobs::ticket::BlobTicket
iroh::endpoint::Bytes
, usebytes::Bytes
iroh::Endpoint::watch_home_relay
To migrate, useendpoint.home_relay().initialized().await?
instead ofendpoint.watch_home_relay().next().await
and useendpoint.home_relay().stream()
instead ofendpoint.watch_home_relay().next().await
.DirectAddrsStream
andConnTypeStream
, useiroh::watchable::WatcherStream
for as named types instead.
- changed
iroh::endpoint::NodeAddr
moved toiroh::NodeAddr
iroh::Endpoint::conn_type_stream
is renamed toiroh::Endpoint::conn_type
and returnsResult<Watcher<ConnectionType>>
instead ofResult<ConnectionTypeStream>
To migrate, useendpoint.conn_type()?.stream()
instead ofendpoint.conn_type_stream()?
.iroh::Endpoint::home_relay
now returnsWatcher<Option<RelayUrl>>
instead ofOption<RelayUrl>
.
To migrate, useendpoint.home_relay().get()?
instead ofendpoint.home_relay()
.iroh::protocol::ProtocolHandler::accept
now takes&self
instead ofArc<Self>
iroh::protocol::ProtocolHandler::shutdown
now takes&self
instead ofArc<Self>
iroh::protocol::RouterBuilder::accept
now takesT: ProtocolHandler
instead ofArc<dyn ProtocolHandler>
iroh::protocol::ProtocolMap
is now private- struct
iroh::config::Config
has a new fieldzone_store
- struct
iroh::metrics::Metrics
has a new fieldstore_packets_expired
⛰️ Features
- (iroh) [breaking] Remove get_protocol and the plumbing required for it (#3009) - (1323c9a)
- (iroh) Remove
Arc
requirements fromProtocolHandler
(#3010) - (8dfbc35) - (iroh, iroh-relay) [breaking] Remove
Endpoint::connect_by_node_id
and add#[doc(cfg(...))]
annotations (#3015) - (95bcb62) - (iroh-dns-server) [breaking] Eviction of stale zonestore entries (#2997) - (74884f1)
- (iroh-net) Add a Watchable struct for use in the Endpoint API (#2806) - (1a79a19)
- (iroh-net-report) [breaking] Add QUIC address discovery probes (#3028) - (cf0f8cc)
- (iroh-relay) [breaking] Use explicit key cache (#3053) - (d4f72fa)
- (net-report) [breaking] Add
net_report::Options
to specify which probes you want to run (#3032) - (ac74c53) - (relay) Reloading certificate resolver (#2999) - (c37895b)
- Implement
RelayDatagramsQueue
(#2998) - (b76500d) - [breaking] Reduce default feature dependents (#3005) - (321d8ff)
- [breaking] Bump MSRV to 1.81 (#3033) - (6e009a8)
- [breaking] Update to iroh-metrics@0.30.0 and portmapper@0.3.0 (#3054) - (dcd0b40)
🐛 Bug Fixes
- (iroh) Poll all AsyncUdpSocket sources fairly (#2996) - (26c5248)
- (iroh, iroh-relay) [breaking] Bypass magicsock::Actor for datagrams from the relay (#2986) - (0d06320)
- (iroh-dns-server) Remove accidental blocking from store (#2985) - (647b2fd)
🚜 Refactor
- (iroh) Remove with_cancel, use run_until_cancelled (#3000) - (f75a04b)
- (iroh) Remove unused rate limiter (#3007) - (b2b070f)
- (iroh) Rename the relay-is-ready-to-send waker (#3014) - (79bf3c3)
- (iroh) [breaking] Remove dialer::Dialer (#3022) - (6a62c80)
- (iroh) [breaking] Make iroh::tls private (#3018) - (0fe7e8b)
- (iroh) [breaking] Improve reexport structure (#3023) - (d9fb470)
- (iroh) Add send queue between relay actor and relays (#3026) - (af5a8c2)
- (iroh) Rename ConnectedRelayActor to ActiveRelayActor (#3027) - (80bc8a3)
- (iroh) Newtype the packet sent over relay servers (#3030) - (e7503c0)
- (iroh) Remove genawaiter usage from dht discovery (#3048) - (738c773)
- (iroh) Remove ActiveRelayMessage::GetClient (#3041) - (1ba140f)
- (iroh, iroh-relay) JoinSet disabling in tokio::select! (#3052) - (a6f502c)
- (iroh-base) [breaking] Remove hash and BlobTicket (#3036) - (ee72f6d)
- (iroh-base) [breaking] Remove base32 module (#3042) - (542f56d)
- (iroh-base) [breaking] Reduce dependencies (#3046) - (4a774f1)
- (iroh-base) Remove automatic key caching (#3051) - (58df1d8)
- (iroh-dns-server) Move db ops into an actor and implement write batching (#2995) - (cd9c188)
- (iroh-relay) [breaking] Always allow acking pings (#3011) - (97082ec)
- (iroh-relay) [breaking] Remove usesed errors. (#3012) - (c5d9e68)
- (iroh-relay) [breaking] Remove async requirement from address_family_selector (#3044) - (8ec0d73)
- Remove
AddrInfo
(#3024) - (6a988a5) - Remove parking-lot dependency (#3034) - (08671bb)
- [breaking] Make PUBLIC_KEY_LENGTH a const that is on PublicKey (#3043) - (218aad3)
- Unify hex encoding with data-encoding (#3047) - (a338289)
📚 Documentation
🧪 Testing
⚙️ Miscellaneous Tasks
- (iroh, iroh-relay) Avoid a duplicate tungstenite dependency (#3006) - (566d7eb)
- Bump netsim setup (#3004) - (a3f0497)
- Update to hickory =0.25.0-alpha.4 (#3021) - (9f4ca84)
- (Deps) Update swarm-discovery to avoid idna <= 0.5 dep (#3025) - (095fcc7)
- Don't log expected errors (#3016) - (fdb687f)
- Clean up some bits (#3039) - (3be22f3)
- Remove version from local dev-deps - (2275bee)