Download Latest Version iroh-dns-server-v0.91.0-x86_64-apple-darwin.tar.gz (5.2 MB)
Email in envelope

Get an email when there's a new version of iroh

Home / v0.90.0
Name Modified Size InfoDownloads / Week
Parent folder
iroh-dns-server-v0.90.0-x86_64-apple-darwin.tar.gz 2025-06-26 5.2 MB
iroh-relay-v0.90.0-x86_64-apple-darwin.tar.gz 2025-06-26 4.2 MB
iroh-dns-server-v0.90.0-aarch64-apple-darwin.tar.gz 2025-06-26 4.7 MB
iroh-relay-v0.90.0-aarch64-apple-darwin.tar.gz 2025-06-26 3.9 MB
iroh-dns-server-v0.90.0-aarch64-unknown-linux-musl.tar.gz 2025-06-26 5.0 MB
iroh-relay-v0.90.0-aarch64-unknown-linux-musl.tar.gz 2025-06-26 4.2 MB
iroh-dns-server-v0.90.0-x86_64-pc-windows-msvc.zip 2025-06-26 4.7 MB
iroh-relay-v0.90.0-x86_64-pc-windows-msvc.zip 2025-06-26 3.8 MB
iroh-dns-server-v0.90.0-x86_64-unknown-linux-musl.tar.gz 2025-06-26 5.5 MB
iroh-relay-v0.90.0-x86_64-unknown-linux-musl.tar.gz 2025-06-26 4.6 MB
README.md 2025-06-26 10.4 kB
v0.90.0 source code.tar.gz 2025-06-26 508.1 kB
v0.90.0 source code.zip 2025-06-26 604.4 kB
Totals: 13 Items   46.8 MB 1

⚠️ Breaking Changes

  • iroh

    • removed

      • iroh::endpoint::Builder:: tls_x509 removed, this is the tls mechanism that has been removed
      • iroh::endpoint::Builder:: tls_raw_public_keys  removed, this is the default mechanism now, so not needed anymore
      • Display implementation was removed for SecretKey, use .to_bytes() and encode as hex to get the previous bytes explicitly, for example:

      rust let encoded_key = data_encoding::HEXLOWER.encode(&secret_key.to_bytes())

      • removed iroh_relay::protos::stun::StunError
      • removed iroh_relay::server::testing::stun_config
      • removed iroh_relay::protos::stun
      • removed iroh_relay::quic::QuicClient::get_addr_and_latency
      • removed DEFAULT_STUN_PORT
      • Removed iroh::discovery::dns::DnsDiscovery::new, use DnsDiscovery::builder instead
      • Removed iroh::discovery::pkarr::PkarrPublisher::new, use PkarrPublisher::builder instead
      • Removed iroh::discovery::pkarr::PkarrPublisher::with_options, use PkarrPublisher::builder instead
      • Removed iroh::discovery::pkarr::PkarrResolver::new, use PkarrResolver::builder instead
        • changed
      • all public APIs return concrete error types, rather than anyhow::Error
      • iroh::protocol::ProtocolHandler methods now return impl Future instead of BoxFuture. You can simply remove the Box::pin(async move {}) from the implementations and instead implement the methods as async fn. See the updated documentation for the iroh::protocol module for an example.
      • iroh::protocol::ProtocolHandler is no longer dyn-compatible. If you need a dyn-compatible version, you need to build your own dyn-compatible wrapper trait. See the (non-public) DynProtocolHandler in iroh::protocol as an example.
      • iroh::watcher is now its own crate n0-watcher, but the Watcher trait is still a top level export in iroh
      • iroh::endpoint::Endpoint::node_addr now returns impl Watcher<Value = Option<NodeAddr>>
      • iroh::endpoint::Endpoint::home_relay now returns impl Watcher<Value = Vec<RelayUrl>>
      • iroh::endpoint::Endpoint::bound_sockets now returns Vec<SocketAddr>
      • iroh-quinn is updated to 0.14.0
      • iroh::protocol::RouterBuilder::accept now takes impl Into<Box<dyn DynProtocolHandler>> instead of impl ProtocolHandler. Because of a blanket From impl this change does not need any changes by users: you can still pass any impl ProtocolHandler to accept. Additionally, if you have your own builder struct upstream, you can now also pass a Box<dyn DynProtocolHandler> to accept, which wasn't possible previously.
      • iroh::discovery::Lagged changed from a tuple to a struct
      • iroh::watcher::Disconnected is changed from a tuple to a struct
      • iroh::watcher::Disconnected is no longer UnwindSafe or RefUnwindSafe
      • iroh::watcher::InitializedFut is no longer RefUnwindSafeiroh-base
      • iroh::endpoint::Builder::add_discovery now takes an impl iroh::discovery::IntoDiscovery argument instead of a closure that returns a Discovery. You can implement that on a builder struct, and any T: Discovery has an auto-impl of IntoDiscovery.
      • iroh::discovery::Discovery::resolve no longer gets a &Endpoint argument. If you need an endpoint in your discovery service, add a builder struct and implement IntoDiscovery for it, which gives you an endpoint that you can clone into your service
      • iroh::discovery::pkarr::PkarrPublisher::n0_dns now takes no arguments and returns a PkarrPublisherBuilder. The secret key is set on PkarrPublisherBuilder::build instead.
  • iroh-base

    • changed
      • iroh_base::ticket::Error is renamed to iroh_base::ticket::ParseError
      • iroh_base::key::KeyParsingError has changed from a thiserror error to a snafu erroriroh-relay
  • iroh-relay
    • changed
      • iroh_relay::node_info::MaxLengthExceededError is no longer UnwindSafe or RefUnwindSafe
      • iroh_relay::node_info::MaxLengthExceededError was changed from a thiserror to a snafu error
      • iroh_relay::client::ConnSendError is now iroh_relay::client::SendError
      • iroh_relay::protos::stun::Error is now iroh_relay::protos::stun::StunError

⛰️ Features

  • (iroh) Allow protocols to gracefully shutdown connections (#3319) - (da571c1)
  • (iroh) [breaking] Make ProtocolHandler use async functions (#3320) - (e36ac77)
  • (iroh) [breaking] Remove deprecated x509 libp2p TLS authentication (#3330) - (136b855)
  • (iroh) [breaking] Introduce transport abstraction (#3279) - (d915bfd)
  • (iroh) Re-export n0_watcher::Watcher trait (#3356) - (bc6e9e3)
  • (iroh) [breaking] Expose DynProtocolHandler (#3366) - (056df1d)
  • Make Endpoint::node_addr watchable and add trait Watcher & combinators (#3045) - (7911255)
  • [breaking] Concrete errors (#3161) - (75eae87)
  • Add methods to create variants of the iroh-base::ticket::ParseError enum. (#3362) - (1859de3)

🐛 Bug Fixes

  • (iroh) Correctly hook up ipv6 addr lookups (#3342) - (b8b5bc3)
  • (iroh-base) [breaking] Remove display impl for SecretKey (#3364) - (19323e6)
  • Remove unneeded lifetime bound for watcher in wasm (#3354) - (84dd511)

🚜 Refactor

  • (iroh) [breaking] Simplify discovery errors (#3340) - (fad99ab)
  • (iroh) [breaking] Rename ProtocolError to AcceptError (#3339) - (d4de591)
  • (iroh) [breaking] Rework net_report (#3314) - (dcbebe9)
  • (iroh) [breaking] Add IntoDiscovery trait (#3327) - (7f2cdd1)
  • (iroh-relay,iroh) Slightly clean up staggered DNS errors (#3337) - (444c76b)

🧪 Testing

  • (iroh-relay) Add 300ms timeout to the test_qad_client_closes_unresponsive_fast test (#3332) - (b647af9)

⚙️ Miscellaneous Tasks

  • ()* Upgrade to the latest iroh-metrics, portmapper, and swarm-discovery (#3369) - (79bc05b)
  • (iroh) [breaking] Change default relays to new "canary" relays (#3368) - (6e72f20)
  • (iroh-relay) Make QAD test non-flaky by using tokio's paused time (#3341) - (2b6c258)
  • (iroh-relay) Fix cargo check warning (#3346) - (c7cf08d)
  • Make clippy 1.87 happy (#3318) - (02acba9)
  • Update project_sync workflow (#3325) - (518400b)

Bugfix

  • Use staging relay in n0_dns_pkarr_relay (#3335) - (aebbc72)

Example

  • Example for 0rtt that can also serve as a benchmark (#3323) - (b0b11f0)
Source: README.md, updated 2025-06-26