New
v0.96.0
⚠️ Breaking Changes
removed
- enum
iroh::endpoint::AddEndpointAddrError - enum
iroh::endpoint::GetMappingAddressError - mod
iroh::net_report:- struct
iroh::net_report::Metrics - enum
iroh::net_report::Probe - struct
iroh::net_report::RelayLatencies - struct
iroh::net_report::Options - struct
iroh::net_report::QuicConfig
- struct
- enum
iroh::endpoint::ConnectionTypewas removed, the closest equivalent isiroh::TransportAddr, which has variantsRelayandIp,- note: now that we can have multiple paths per connection, these types now describe paths not connections. Look at theiroh::endpoint::Connection::pathsmethod and theiroh::endpoint::PathInfostruct for more details on how you can learn the type of the currently selected path. - enum
iroh::endpoint::ControlMsg - enum
iroh::endpoint::AuthenticationError - enum
iroh::endpoint::AddEndpointAddrError - enum
iroh::endpoint::DirectAddrInfo - enum
iroh::endpoint::GetMappingAddressError - struct
iroh::endpoint::CryptoServerConfig - struct
iroh::endpoint::RetryError - struct
iroh::endpoint::WeakConnectionHandle - fn
iroh::endpoint::AuthenticationError::from(source: iroh_quinn_proto::connection::ConnectionError) -> Self - fn
iroh::endpoint::Endpoint::conn_type(&self, endpoint_id: iroh_base::key::EndpointId) -> Option<n0_watcher::Direct<iroh::endpoint::ConnectionType>> - fn
iroh::endpoint::Endpoint::latency(&self, endpoint_id: iroh_base::key::EndpointId) -> Option<core::time::Duration> - variant
iroh::endpoint::AuthenticationErrro::ConnectionError - variant
iroh::endpoint::ConnectWithOptsError::AddEndpointAddr - variant
iroh::endpoint::Source::Saved
Changed
Connection Changes
- struct
iroh::endpoint::Connectionnow has a type parameter:iroh::endpoint::Connectionis aliased fromConnection<HandshakeCompleted>iroh::endpoint::IncomingZeroRttConnectionis aliased fromConnection<IncomingZeroRtt>iroh::endpoint::IncomingZeroRttConnectionis aliased fromConnection<OutgoingZeroRtt>
- fn
iroh::endpoint::Incoming::accept_with(self, server_config: Arc<iroh_quinn_proto::config::ServerConfig>) -> Result<iroh::endpoint::Accepting, iroh_quinn_proto::connection::ConnectionError>changed toiroh::endpoint::Incoming::accept_with(self, server_config: Arc<iroh::endpoint::ServerConfig) -> Result<iroh::endpoint::Accepting, iroh::endpoint::ConnectionError> - fn
iroh::endpoint::Incoming::retry(self) -> core::result::Result<(), iroh_quinn::incoming::RetryError>changed toiroh::endpoint::Incoming::retry(self) -> Result<(), iroh::endpoin::RetryError> - variant
iroh::endpoint::ConnectWithOptsError::NoAddress: source iroh::endpoint::GetMappingAddressErrorchanged toiroh::endpoint::ConnectWithOptsError::NoAddress: source iroh::discovery::DiscoveryError
Net Report
- struct
iroh::net_report::Reportis nowiroh::NetReport - const
iroh::net_report::TIMEOUTis nowiroh::NET_REPORT_TIMEOUT
Server & Transport Config
- struct
iroh::endpoint::ServerConfig, use theiroh::endpoint::Endpoint::create_server_config_builderto get aServerConfigBuilder, which allows you to add custom configuration for when the endpoint acts as a server that accepts connections - struct
iroh::endpoint::TransportConfigis nowiroh::endpoint::QuicTransportConfig, use theiroh::endpoint::QuicTransportConfig::buildermethod to get aQuicTransportConfigBuilderto add custom configuration for the QUIC transport - fn
iroh::endpoint::Builder::transport_config(self, transport_config: iroh_quinn_proto::config::transport::TransportConfig) -> Selfchanged tofn iroh::endpoint::Builder::transport_config(self, transport_config: iroh::endpoint::QuicTransportConfig) -> Self
Bind Address
iroh::endpoint::Builder::bind_addr_v4(self, addr: SocketAddrV4)was replaced byiroh::endpoint::Builder::bind_addr(self, addr: ToSocketAddr)-> Result<Self, InvalidSocketAddr>iroh::endpoint::Builder::bind_addr_v6(self, addr: SocketAddrV6)was replaced byiroh::endpoint::Builder::bind_addr(self, addr: ToSocketAddr)-> Result<Self, InvalidSocketAddr>
Metrics
iroh::metrics::MagicsockMetricshas entirely new set of fields
Discovery → AddressLookup
- module
iroh::discoveryrenamed toiroh::address_lookup - trait
iroh::discovery::Discoveryrenamed toiroh::address_lookup::AddressLookup - fn
iroh::endpoint::Endpoint::discoveryrenamed toiroh::endpoint::Endpoint::address_lookup - fn
iroh::endpoint::Builder::set_user_data_for_discoveryrenamed toiroh::endpoint::Builder::set_user_data_for_address_lookup - fn
iroh::endpoint::Builder::discoveryrenamed toiroh::endpoint::Builder::address_lookup - struct
iroh::discovery::MdnsDiscoveryrenamed toiroh::address_lookup::MdnsAddressLookup - struct
iroh::discovery::DhtDiscoveryrenamed toiroh::address_lookup::DhtAddressLookup - struct
iroh::discovery::StaticDiscoveryrenamed toiroh::address_lookup::MemoryLookup - trait
iroh::discovery::DynIntoDiscoveryrenamed toiroh::address_lookup::DynIntoAddressLookup - trait
iroh::discovery::IntoDiscoveryrenamed toiroh::address_lookup::IntoAddressLookup - struct
iroh::discovery::DnsDiscoveryrenamed toiroh::address_lookup::DnsAddressLookup - enum
iroh::discovery::DiscoveryErrorrenamed toiroh::address_lookup::AddressLookupError - enum
iroh::discovery::IntoDiscoveryErrorrenamed toiroh::address_lookup::IntoAddressLookupError - struct
iroh::discovery::DiscoveryItemrenamed toiroh::address_lookup::AddressLookupItem - struct
iroh::discovery::ConcurrentDiscoveryrenamed toiroh::address_lookup::ConcurrentAddressLookup - feature
discovery-local-networkrenamed toaddress-lookup-mdns - feature
discovery-pkarr-dhtrenamed toaddress-lookup-pkarr-dht
⛰️ Features
- (example) Improve path stat printing in transfer example (#3860) - (c168e73)
- (iroh) Introduce EndpointHooks (#3688) - (1efd2b5)
- (iroh) Add fast-apple-datapath feature and enable it by default (#3724) - (a5f4a08)
- (iroh) [breaking] Encapsulate the
quinn::TransportConfigto enforce certain minimums when used with multipath (#3721) - (cc932ef)
🐛 Bug Fixes
- (ci) Better cli caching (#3779) - (94caac0)
- (deps) Update to newest quinn main and fix api usage (#3802) - (8e9b5c0)
- (docs) Fix link to EndpointTicket (#3814) - (ccf876e)
- (iroh) Typo(s) (#3630) - (1cc5897)
- (iroh) Clear once the last connection closes () - ()
🚜 Refactor
- (deps) Remove rustls-pemfile (#3747) - (06772c3)
- (example) Reduce timeouts and add close - (e750ccf)
- (iroh) Simplify internal transports sending (#3708) - (8d56889)
- (iroh) Avoid storing the TransportsSender (#3712) - (3f4d365)
- (iroh) [breaking] Remove Endpoint::latency (#3717) - ()
📚 Documentation
- (endpoint::Builder) Clarify that clearing relay transport doesn't alter holepunching (#3833) - (52c4284)
- (iroh) Improve builder docs about discovery (#3801) - (56fc0f7)
- (iroh) Add detail & example to online method (#3722) - (94f8a83)
- (iroh-relay) Add section on how to use as a library (#3715) - (40a5ce6)
⚡ Performance
- Various improvements - (8d819f0)
🧪 Testing
- (iroh) Fix
test_two_devices_setup_teardownhanging (#3675) - (59a7e85) - (iroh) Fix
test_active_relay_inactivetest being flaky (#3680) - (160d535) - (iroh) Fix doctests for bind_addr to use port 0 (#3839) - (0dba0ff)
- (iroh) Reduce flakyness of holepunching test (#3877) - (8ed8cfa)
⚙️ Miscellaneous Tasks
- (ci) Cache more deps (#3773) - (f0ab853)
- (ci) Improve netsim perf and logging + update to lld (#3793) - (f0e5094)
- (dependabot) Skip patch versions (#3885) - (6975379)
- Only patch quinn directly - (1a5c4dd)
- Fixup deny - (d0707e8)
Bench
- Add ipv6 option and metrics feature - (147e6bb)
Deps
Example
- Add qlog support to transfer example - (6bca5d0)
- (iroh) In transfer example print stats independent of endpoint shutdown (#3872) - (5c4b9b4)
- Improve transfer example (#3873) - (f4bfc9d)