⚠️ Breaking Changes
-
net-tools
now has it's own repo, which includesportmapper
andnetwatch
-
iroh
-
changed
iroh-net
got renamed toiroh
iroh-router
moved intoiroh
iroh-router::ProtocolHandler
is nowiroh::protocol::ProtocolHandler
iroh-router::ProtocolMap
is nowiroh::protocol::ProtocolMap
iroh-router::Router
is nowiroh::protocol::Router
iroh-router::RouterBuilder
is nowiroh::protocol::RouterBuilder
iroh-net
'sNetcheckMetrics
are now calledNetReportMetrics
iroh::Endpoint::close
takes no arguments now, it defaults to using code0
and an empty messageiroh::Endpoint::close
now takes&self
rather thanself
. This can, in some situations, mean an existing (clone of an) endpoint might be dropped too early as a temporary variable.iroh::test_utils::run_relay_server_with(stun: Option<StunConfig>)
=>iroh::test_utils::run_relay_server_with(stun: Option<StunConfig>, quic: bool)
- Events are emitted on different tracing targets:
iroh::events
instead ofevents.net
. iroh::node::Builder
has no more generic parameters anymoreiroh::node::Node
has no more generic parameters anymoreiroh::protocol::Router::shutdown
takes&self
instead ofself
RouterBuilder::accept
takesimpl AsRef<[u8]>
. Existing code should still work!Node::accept
takesimpl AsRef<[u8]>
. Existing code should still work!
-
removed
iroh::cli
, look atiroh-blobs
,iroh-docs
, andiroh-doctor
for cli examplesiroh::node
, useiroh-node-util
iroh::metrics
, useiroh-metrics
iroh::blobs
useiroh-blobs
crateiroh::docs
useiroh-docs
crateiroh::gossip
useiroh-gossip
crateiroh::client
iroh::util
- the ability to run
iroh
itself in a docker container, as there is no binary anymore iroh::client::blobs
useiroh_blobs::rpc::client
. a memory client is available on Blobsiroh::client::tags
useiroh_blobs::rpc::client
. a memory client is available on Blobsiroh::client::gossip
useiroh_gossip::rpc::client
. a memory client is available on Gossipiroh::client::docs
useiroh_docs::rpc::client
. a memory client is available on Docsiroh::client::authors
useiroh_docs::rpc::client
. a memory clientis available on Docsiroh::node::MemNode
, useNode
directlyiroh::node::FsNode
, useNode
directlyiroh::node::Node::local_pool_handle
iroh::node::builder::DocsStorage
iroh::node::builder::Builder::enable_gc_policy
iroh::node::builder::Builder::enable_docs
iroh::node::builder::Builder::register_cb_done
iroh::node::builder::ProtocolBuilder::local_pool_handle
iroh::node::builder::GcPolicy
iroh::util::progress
iroh::util::path::IrohPaths::BaoStoreDir
iroh::util::path::IrohPaths::DocsDatabase
iroh::util::path::IrohPaths::Console
iroh::util::path::IrohPaths::DefaultAuthor
util::fs/PathContent
, useiroh_blobs::util::fs::PathContent
util::fs/path_content_info
, useiroh_blobs::util::fs::path_content_info
util::fs/key_to_path
, useiroh_blobs::util::fs::key_to_path
util::fs/path_to_key
, useiroh_blobs::util::fs::path_to_key
util::fs/canonicalized_path_to_string
, useiroh_blobs::util::fs::canonicalized_path_to_string
util::io::*
, useiroh_blobs::util::io
util::progress::ProgressEmitter
util::progress::ProgressAsyncReader
util::progress::Progress
util::progress::ProgressReader
util::progress::ProgressReaderUpdate
-
added
- added
iroh::Endpoint::is_closed
- added
-
-
iroh-node-util
- module
iroh::client::net
is now a reexport ofiroh_node_util::rpc::client::net
- module
iroh::client::node
is now a reexport ofiroh_node_util::rpc::client::node
- module
iroh-cli::commands::net
moved toiroh-node-util::cli::net
- logic in
iroh-cli::commands::rpc
moved toiroh-node-util::cli::node
- module
iroh_cli::logging
has moved toiroh-node-util
to make it available for other people building nodes iroh_config_root
,iroh_data_root
andiroh_cache_root
iniroh-cli
have been replaced with genericconfig_root
,data_root
andcache_root
iniroh-node-util::config
load_secret_key
moved toiroh_node_utils
to preserve it
- module
-
iroh-relay
-
changed
The URLs served by the relay changed:/relay/probe
has moved to/ping
/derp/probe
has been removed.
Unless you were manually using those URLs you will not notice these changes, nothing in the iroh codebase ever used the changed URLs.RelayMap
now can be created with an iterator ofArc
s directly.iroh-relay
now usesNodeGone
instead ofPeerGone
in some enums- If not configured there is now a default rate limit for incoming data from client connections: 4KiB/s steady-stream and 16MiB burst capacity.
-
removed
iroh_net::relay
is removed.RelayUrl
,RelayMode
,RelayNode
andRelayMap
are moved to the top (iroh_net
). All other members of this module are now moved to the new crateiroh-relay
- field
config
has been removed from variantiroh_relay::server::CertConfig::LetsEncrypt
- variant
iroh_relay::server::CertConfig::Manual
no longer has fieldprivate_key
-
added
iroh_base::relay_map::RelayNode
now has fieldquic
that takes aOption<iroh_base::relay_map::QuicConfig>
iroh::test_utils::run_relay_server_with(stun: Option<StunConfig>)
=>iroh::test_utils::run_relay_server_with(stun: Option<StunConfig>, quic: bool)
, whenquic
istrue
, it will start a quic server for QUIC address discovery, that has self signed tls certs for testing.iroh_relay::server::ServerConfig
has new fieldquic
that takes a `Option<iroh_relay::server::QuicConfig>iroh_relay::server::TlsConfig.quic_bind_addr
is a new field that takes aSocketAddr
iroh_relay::server::TlsConfig.server_config
is a new field that takes arustls::ServerConfig
- variant
iroh_relay::server::CertConfig::LetsEncrypt
has a new fieldstate
that takes atokio_rustls_acme::AcmeState<EC, EA>
-
⛰️ Features
- (iroh) Make all important iroh_base types available (#2975) - (73c9b75)
- (iroh) Improve Router shutdown (#2978) - (fbcaaa5)
- (iroh) Improve shutdown interactions (#2980) - (e461cca)
- (iroh-base, iroh-net-report) [breaking] Intro net-report as a crate (#2921) - (a5e9283)
- (iroh-net) Implement the https probe (#2903) - (91d44dc)
- (iroh-net) Allow the underlying UdpSockets to be rebound (#2946) - (cc9e4e6)
- (iroh-relay) Rate-limit client connections (#2961) - (c999770)
- (iroh-relay) [breaking] Add a QUIC server for QUIC address discovery to the iroh relay. (#2965) - (b2cb0ca)
- [breaking] Add iroh-relay crate (#2873) - (59b5bf9)
- Simple iroh (#2968) - (32f1fcd)
- Update to iroh-metrics@0.29.0 (#2992) - (078d1a6)
- Extract iroh-node-util (#2993) - (92d9864)
🐛 Bug Fixes
- (ci) Try to reuse msys2 dep (#2956) - (4e58b1f)
- (iroh) Remove iroh dev self dep (#2974) - (7057d72)
- (iroh-dns-server) Actually use async fs in load_secret_key (#2943) - (7c19da4)
- (iroh-net) Do not return a port for reqwest DNS resolver (#2906) - (81c8ff7)
- (iroh-net) Make sure the rtt-actor is shutdown correctly (#2914) - (c96b032)
- (iroh-net) Fix memory leaks in the iroh-relay server (#2915) - (e2c3c98)
- (iroh-relay) Do not use spawn_blocking in stun handler (#2924) - (1084400)
- (netwatch) BSD rebind socket on errors (#2913) - (c451750)
- (netwatch) Hold on to netmon sender reference in android (#2923) - (4bd4df7)
- Update to patched iroh-gossip 0.28.1 - (bd44719)
- Enforce cc@1.1.31 (#2907) - (68c6184)
- Remove problematic usage of
else
branches intokio::select
s (#2940) - (ccfc700)
🚜 Refactor
- (iroh) [breaking] Move blobs and tags rpc client and server to iroh-blobs (#2874) - (d6a32f4)
- (iroh) Extract docs RPC into iroh-docs (#2868) - (289b4cf)
- (iroh) [breaking] Get rid of some dependencies (#2948) - (73e7d44)
- (iroh) [breaking] Extract net and node rpc (#2927) - (f174c8e)
- (iroh-cli) [breaking] Use blobs and tags cli from iroh-blobs crate (#2942) - (f9e883d)
- (iroh-cli) [breaking] Use docs and authors cli from iroh-docs crate (#2947) - (ad91831)
- (iroh-cli) [breaking] Use gossip cli from iroh-gossip crate (#2945) - (fcc105b)
- (iroh-cli) [breaking] Use config and logging from iroh-node-utils (#2953) - (3ff914d)
- (iroh-cli) [breaking] Move net and node cli into iroh-node-util under the cli feature (#2954) - (cbf7fd0)
- (iroh-net) Remove dead code in relay http-server (#2908) - (23b874c)
- (iroh-relay) Improve overall server structure (#2922) - (0e57292)
- (iroh-router) [breaking] Change accept to take an AsRef<[u8]> (#2963) - (4e3b431)
- [breaking] Remove default protocols and iroh-cli (#2928) - (a956319)
- Move
iroh-router
intoiroh-net
and renameiroh-net
toiroh
(#2973) - (f7764ef) - Cleanup internal dependency references (#2976) - (fb20176)
- Extract iroh-metrics into its own repo (#2989) - (df591bc)
- Extract net-tools (#2991) - (574337a)
📚 Documentation
- (iroh-dns-server) Fixup rate limit config docs (#2894) - (8d8baf5)
- (iroh-net) Explain when sockets are closed (#2892) - (a4ad7a2)
- Format code in doc comments (#2895) - (b17b1f2)
- Fixup changelog for 0.28.1 (#2899) - (0a7a534)
- Rewrite README (& add
echo.rs
example) (#2960) - (4abfd61)
🧪 Testing
- (iroh) Feature-flag the doc test (#2983) - (b30f218)
- (iroh-cli) Increase wait on windows resumption tests (#2919) - (f80dd3f)
- (iroh-relay, netcheck) Move tests to use local relays (#2935) - (8edaee9)
⚙️ Miscellaneous Tasks
- (ci) Easy manual builds for binaries (#2890) - (fcf89a6)
- (ci) Fix uploads of release artifacts (#2891) - (1409bc4)
- (ci) Fix uploads of release artifacts again (#2893) - (258eb33)
- (ci) Fix for asset bundles (#2898) - (911d7a6)
- (ci) Reduce sccache size (#2988) - (8c00f7b)
- (iroh) Rename target for events (#2977) - (43d0ea4)
- (iroh-dns-server) Cleanup some code (#2941) - (fbcb056)
- (iroh-node-util) Add iroh-node-util to tests (#2955) - (63336ab)
- (iroh-relay) Fixup docs feature config (#2920) - (7084262)
- Update Cargo.lock - (f3398b4)
- Release - (d0994a0)
- Release - (30e3cb3)
- Update deny.toml (#2888) - (57cd2ab)
- Accept unmaintained crate for now (#2918) - (bf603e8)
- Kill tests after 60s using nextest (#2900) - (ba1ffa1)
- Fix important readme design issue (flat square style consistency) (#2931) - (5acce9c)
- Extend CI build job config (#2929) - (1479b45)
- Adapt to latest main in iroh-gossip and iroh-docs (#2936) - (09c54e4)
- Prune some deps (#2932) - (e675bba)
- Remove
cc
version requirement & update lockfile to cc v1.2.1 (#2969) - (0a5379b)