Skip to content

v0.2.0

Choose a tag to compare

@tmc tmc released this 08 Sep 01:52
· 83 commits to main since this release
f3a4704

Behaviour release. Nothing was removed and no exported signature changed.

Added: iroh.WithoutNetReport. Deprecated: iroh.WithNetReport — it still compiles and still clears the disable flag, so passing it is harmless, but it no longer enables anything that was off.

Four behaviour changes worth reading before upgrading.

  • net_report runs by default whenever relays are configured. Such an endpoint sends probes it did not send before, and its home relay can move away from the bootstrap pick after Bind. iroh.WithoutNetReport turns it off.
  • Path MTU discovery runs. Setting the don't-fragment bit had been gated behind an IROH_ENABLE_DF environment variable, so an accepting endpoint stayed at the initial 1243-byte payload for the life of the connection. Datagrams too large for the path now fail with EMSGSIZE rather than being fragmented, which is what QUIC requires.
  • mdns answers SRV and TXT questions, which were previously dropped, and discovers over the IPv6 multicast group ff02::fb as well as IPv4. An SRV or TXT question must name the instance rather than the service.
  • relay.Map is safe for concurrent use and must not be copied after first use. Both fields were already unexported, so no composite literal is affected; copying a Map by value now trips go vet's copylocks check.

The vendored quic-go fork in internal/qng was updated to upstream v0.62.0, by way of v0.61.0. That package is internal, so no exported API changed.

See COMPATIBILITY.md for the full detail, including measured performance, and the Rust parity matrix.