Releases: n0-computer/iroh
Releases · n0-computer/iroh
v0.25.0
⚠️ Breaking Changes
-
iroh-gossip
- removed
Gossip::update_direct_addresses
Updating the direct addresses is now handled byGossip
automatically.
- removed
-
iroh-net
- removed
netcheck::Client::receive_stun_packet
iroh_net::util
- added
iroh_net::endpoint::Builder::bind_addr_v4
iroh_net::endpoint::Builder::bind_addr_v6
- changed
iroh_net::endpoint::Endpoint::bind
now takes no argumentsnetcheck::Client
is not longerClone
.
- removed
-
iroh-blobs
- removed
Store::gc_sweep
Store::gc_mark
Store::gc_start
- added
Store::gc_run
which starts the full gc schedule
- removed
-
iroh
- removed
node::ProtocolBuilder::downloader
node::ProtocolBuilder::blobs_db
node::Builder::bind_port
- added
node::Builder::bind_addr_v4
node::Builder::bind_addr_v6
node::Builder::bind_random_port
- removed
⛰️ Features
- (iroh-base) Implement
From
&Into
betweenNodeAddr
andNodeTicket
(#2717) - (8a4bb09) - Allow to bind to a specific address (#2694) - (2e5188a)
🐛 Bug Fixes
- (ci) Fix docker builds on release & release rebuilds (#2712) - (21d75c7)
- (iroh) Handle out of bounds requests for blobs read_at (#2729) - (28cf153)
- (iroh-blobs) Unconditionally delete blobs (#2692) - (567577d)
- (iroh-net) Fix a hot-loop when the probes time out (#2699) - (874030a)
- Put
--with-relay
feature in iroh-net bench behindlocal-relay
feature flag (#2700) - (b8c0513)
🚜 Refactor
- (iroh) Remove custom impl of
SharedAbortingJoinHandle
(#2715) - (098b11f) - (iroh-gossip) Make use of Endpoint::direct_addresses in iroh_gossip::net (#2731) - (9583729)
- (iroh-net) [breaking] Make netcheck::Client !Clone (#2716) - (ce2cfee)
- [breaking] Migrate to tokio's AbortOnDropHandle (#2701) - (35e9873)
📚 Documentation
- (iroh-cli) Add docs to entrypoint (#2697) - (c6e2f05)
- (iroh-cli) Udpate
doctor
command documentation (#2710) - (93b400a) - (iroh-cli) Update
authors
command documentation (#2702) - (2c199a0) - (iroh-cli) Update
console
command documentation (#2705) - (4964ee3) - (iroh-cli) Update
net
command documentation (#2707) - (8c321a2) - (iroh-cli) Update
start
command documentation (#2708) - (2636be8) - (iroh-cli) Update
rpc
command documentation (#2711) - (518d439) - (iroh-cli) Update
gossip
command documentation (#2706) - (bdaeba1) - (iroh-cli) Update
tags
command documentation (#2709) - (7510a59) - (iroh-cli) Update
blobs
command documentation (#2704) - (76b1473) - (iroh-cli) Update
docs
command documentation (#2703) - (7b6c974) - (iroh-cli) Fix typo (#2718) - (d2ecbdb)
⚙️ Miscellaneous Tasks
v0.24.0
⚠️ Breaking Changes
iroh-net
- swarm discovery will no longer send consecutive repeated values
iroh::net::endpoint::Endpoint::accept
now returnsIncoming
instead ofConnecting
. This allows rejecting incoming connections earlier, notify the initiating side to retry later and more. To get backConnecting
, simply useIncoming::accept()
. If all you did withConnecting
before was to.await
it, you can do the same withIncoming
, too, and get back aConnection
.- Removed
iroh::net::endpoint::Builder::concurrent_connections
. The amount of concurrent connections is now controlled by either callingIncoming::accept
orIncoming::refuse
afterEndpoint::accept
.
⛰️ Features
- (bench) Add
--with-relay
option to allow testing relay throughput (#2664) - (5c09013) - (bench) Add
--metrics
option printing iroh-net library metrics (#2668) - (4f83c43) - (iroh-net) [breaking] Upgrade to Quinn 0.11 and Rustls 0.23 (#2595) - (34ec5e2)
🐛 Bug Fixes
- (iroh-blobs) Demote
warn!
totrace!
logs (#2689) - (6181455) - (iroh-blobs) Turn
println!
intotracing::debug!
(#2686) - (5bbcb60) - (iroh-blobs) Timeout based on correct
max_write_duration
option (#2688) - (2347565) - (iroh-net) Document the keylog environment variable correctly (#2655) - (c70caaf)
- (iroh-net) Magic sock
recv_data_ipv4
andrecv_data_ipv6
metrics numbers (#2667) - (cb1650a) - (iroh-net) Also check the last packet in
MagicSock::poll_recv
(#2650) - (54ca9c9) - (iroh-net) Reduce noise in swarm discovery due to republish (#2685) - (fd56763)
- Docker CI performance & release builds (#2659) - (d567231)
🚜 Refactor
🧪 Testing
⚙️ Miscellaneous Tasks
Deps
v0.23.0
Read All about this release on our blog post!
⚠️ Breaking Changes
iroh
- No more
deref
ofiroh::net::Client
toiroh::client::node::Node
iroh::client::node
->iroh::client::net
iroh::client::node::Node::shutdown
->iroh::client::Client::shutdown
iroh::client::blobs::BlobStatus
has a new caseNotFound
iroh::client::blobs::BlobStatus::Partial: size
is now aBaoBlobSize
instead of au64
V0
andV1
of theiroh_blobs
store are deprecated. Ensure data that is imported asiroh_blobs::store::fs::Store::import_flat_store
is migrated before future versions, which won't support this.client::node::Client::connection_info
->client::node::Client::remote_info
client::node::Client::connections
->client::node::Client::remote_info_iter
- No more
iroh-cli
--metrics-port
flag on the iroh cli is now--metrics-addr
, eg: specify127.0.0.1:9090
instead of9090
node connection-info
->node remote-info
node connections
->node remote-list
iroh-blobs
- Modifies
Event
enum:- removes
CustomGetRequestReceived
- adds
TransferProgress
- removes
send_blob
now takes anEventSender
- trait
EventSender
has been renamedCustomEventSender
- the concrete (boxed) event sender is now called just
EventSender
FlumeProgressSender
is nowAsyncChannelProgressSender
iroh_blobs::store::fs::Store::import_flat_store
is deprecated. Ensure all data is migrated before future versions, which won't support this.iroh_blobs::store::fs::FlatStorePaths
is deprecated. Ensure all data is migrated before future versions, which won't support this.iroh-blobs::provider::transfer_collection
has been removed.
- Modifies
iroh-net
LocalSwarmDiscovery
is not longerUnwindSafe
endpoint::ConnectionInfo
->endpoint::RemoteInfo
endpoint::ConnectionInfo::id
is removed since it's internal information.endpoint::ConnectionInfo::last_alive_relay
is deprecated. Use.relay_url.last_alive
endpoint::Endpoint::connection_info
->endpoint::Endpoint::remote_info
endpoint::Endpoint::connection_infos
->endpoint::Endpoint::remote_info_iter
⛰️ Features
- (ci) Notify discord of successfull flaky runs (#2623) - (94cee34)
- (iroh) [breaking] Blob batch PR, attempt 3 (#2545) - (9a55122)
- (iroh-blobs) Add outboard creation progress to the mem store (#2625) - (47c8528)
- (iroh-net) Upgrade to new
swarm-discovery
api (#2605) - (a9c96a9) - (iroh-net) Add PkarrNodeDiscovery to iroh-net (#2628) - (9facd5a)
- (iroh-net) Allow customizing republish delay for the pkarr publisher (#2637) - (134dbee)
- Allow custom blob providing event handling (#2583) - (bcc87a2)
🐛 Bug Fixes
- (ci) Report flaky outupt only on success and failure (#2627) - (8b6245e)
- (iroh-blobs) Do not skip empty partial blobs in migration (#2604) - (1c86dac)
- (iroh-cli)
cli_provide_addresses
to use the correctiroh status
command (#2649) - (717b3cd) - (iroh-gossip) Clarify docs and semantics of gossip joined event (#2597) - (5d98a5c)
- (tests) For DNS discovery only use a local DNS server (#2598) - (5eee643)
🚜 Refactor
- (iroh) [breaking] Convert node to net module (#2642) - (6354e04)
- (iroh,iroh-net) [breaking] Prefer
remote
toconnection
in api (#2610) - (9d06888) - (iroh-blobs) Use oneshot channel from oneshot crate (#2624) - (2e01d47)
- (iroh-blobs) [breaking] Expand docs (#2638) - (217ac06)
- (iroh-blobs, iroh) [breaking] Deprecate flat stores (#2629) - (168fa5b)
- (iroh-bytes) [breaking] Remove flume dependency (#2622) - (e9c5088)
- (iroh-cli) [breaking] Metrics-addr cli arg, metrics off by default (#2631) - (4df1c91)
- (iroh-net) [breaking] Remove async channel (#2620) - (74a527b)
- (iroh-net) [breaking] Rename the local-swarm-discovery feature to discovery-local-network (#2634) - (d1578ee)
- (iroh-net) Move all timeouts into one file (#2641) - (bb808b4)
- (iroh-net,iroh) Rename to remote_info_iter, fixup some docs (#2645) - (b17bf1d)
- Normalize feature names (#2633) - (d02c21f)
📚 Documentation
- (iroh-cli) Fix help text for incomplete blobs (#2615) - (ceb94da)
- Also list
iroh-gossip
as a re-export (#2606) - (3b7881c)
🧪 Testing
- (iroh) Reduce entry amount in
sync_gossip_bulk
(#2608) - (a2d2ec6) - (iroh) Re-enable some flaky tests to see if they are still flaky (#2458) - (b8f2b3f)
- (iroh-cli) Replace
cli_provide_one_file_large
with a faster test (#2607) - (7494566)
⚙️ Miscellaneous Tasks
- (ci) Use nextests groups to isolate some tests (#2617) - (a5072c3)
- Fix deps issues (#2643) - (83f6fcc)
Ref
v0.22.0 - Clean up on aisle five
⚠️ Breaking Changes
-
iroh-gossip
iroh_gossip::dispatcher
is removed with everything that was in it. Use the new API fromiroh_gossip::net::Gossip
instead (see below).iroh_gossip::net::Gossip
methods changed:- changed:
join
now returns aGossipTopic
- removed:
broadcast
,broadcast_neighbors
,subscribe
,subscribe_all
,quit
.- for
subscribe
usejoin
instead, which returns aGossipTopic
- for
broadcast
andbroadcast_neighbors
use the respective methods onGossipTopic
. quit
is obsolete now, the topic will be quitted once allGossipTopic
handles are dropped.subscribe_all
is no longer available
- for
- changed:
iroh_gossip::net::JoinTopicFut
is removed (it is now obsolete)
-
iroh-net
- Refactored the module structure for users of the
iroh-relay
feature in iroh-net- moved
iroh_net::relay::iroh_relay::*
toiroh_net::relay::server::*
iroh_net::relay::ClientConnHandler
toiroh_net::relay::server::ClientConnHandler
iroh_net::relay::Metrics
toiroh_net::relay::server::Metrics
iroh_net::relay::MaybeTlsStreamServer
toiroh_net::relay::server::MaybeTlsStreamServer
iroh_net::relay::http::Client
toiroh_net::relay::HttpClient
iroh_net::relay::http::ClientBuilder
toiroh_net::relay::HttpClientBuilder
iroh_net::relay::http::ClientReceiver
toiroh_net::relay::HttpClientReceiver
iroh_net::relay::http::ClientError
toiroh_net::relay::HttpClientError
iroh_net::relay::http::TlsConfig
toiroh_net::relay::server::TlsConfig
- removed
iroh_net::relay::http::ServerHandle
. The server can now be aborted via itstask_handle()
function or by dropping it. - renamed
iroh_net::relay::RelayClient
toiroh_net::relay::RelayConn
- renamed and moved
iroh_net::relay::Server
toiroh_net::relay::server::ServerActorTask
- unexposed
iroh_net::relay::http::{Server, ServerBuilder}
. Useiroh_net::relay::server::Server
instead.
- moved
- Properly feature-gate the iroh server implementation behind
#[cfg(feature = "iroh-relay")]
by feature-gating the wholeiroh_net::relay::server
module.
- Refactored the module structure for users of the
-
iroh
- Unknown fields in the configuration file will now cause an error.
- Configuring the GC Policy in the configuration file has changed.
- Example:
[gc_policy] enabled = true interval = 1234
⛰️ Features
- (iroh) Improve documentation and canonicalize docs in
iroh::client
(#2553) - (d937234) - Override to staging relays (#2551) - (ed4420b)
🐛 Bug Fixes
- (iroh) Do not set low max streams in builder (#2593) - (215cd1d)
- (iroh-blobs) Use async_channel instead of flume for local_pool (#2533) - (9052905)
- (iroh-blobs) Do not hit the network when downloading blobs which are complete (#2586) - (0784403)
- (iroh-cli) [breaking] Improve cli and configuration file (#2532) - (0fc3794)
- (iroh-gossip) Connection loop misuses
tokio::select!
leading to read errors (#2572) - (32bb0f3) - (iroh-net) Fix a compiler error with newer
derive_more
versions (#2578) - (3f3fec5) - (iroh-net) Make a single direct address in NodeAddr instant (#2580) - (f5b3918)
- Docker image builds (#2530) - (5c60a52)
- Disable docs preview on forks (#2558) - (741b42f)
- Force CI to use staging relays (#2560) - (ffeb1a9)
- Pin derive_more to avoid sudden breakages (#2584) - (1ba033c)
🚜 Refactor
- (iroh) Remove flume from iroh gossip (#2542) - (2964569)
- (iroh) Remove flume from iroh-cli and iroh (#2543) - (347d45c)
- (iroh-docs) Replace flume with async_channel in docs (#2540) - (e7a7552)
- (iroh-net) Replace flume in iroh-net with async_channel (#2539) - (22314a1)
- (iroh-net) Move more server code behind
iroh-relay
feature flag (#2566) - (1dda2f7) - (iroh-net) [breaking] Improve server modules structure & rename structs (#2568) - (29d2e82)
- (iroh-net) Switch to (now stable)
IpAddr::to_canonical
(#2569) - (7fdd6cb)
📚 Documentation
- (iroh) Add documentations and examples for the
iroh::node::Client
(#2582) - (55836fa) - (iroh-cli) Point to the configuration refernce from each iroh subcommand (#2571) - (8e4e586)
- Fix typos discovered by codespell (#2534) - (8435a45)
- Update description in cargo.toml - (7259ab5)
🧪 Testing
- (iroh-blobs) Comment out ignored test (that is not a flaky test) (#2559) - (15f36b3)
- (iroh-cli) Update to new api (#2549) - (f97c1c0)
- (iroh-cli) Remove flaky mark from 5 tests and improve logs (#2562) - (14fccee)
- (iroh-cli) Reduce flakyness of cli_provide_file_resume (#2563) - (f085e63)
- (iroh-cli) Make cli resumption tests not flaky (#2564) - (9e6b1e0)
- (iroh-net) Increase timeout for local swarm discovery test (#2574) - (605a85d)
⚙️ Miscellaneous Tasks
- (iroh-net) Remove need for relay info in best_addr (#2579) - (d662bfc)
- Fix clippy warnings (#2550) - (73de21b)
- Generate docs for each PR (#2547) - (0812333)
Ref
v0.21.0 - Fix, Clean & Polish
⚠️ Breaking Changes
Protocol Changes
- iroh-relay
- Clients will dial
/relay
instead of/derp
, this means all0.21
nodes are only compatible with relays>= 0.20
- Clients will dial
API Changes
iroh-cli
- top level commands
author
->authors
blob
->blobs
doc
->docs
tag
->tags
- sub commands
new
->create
- added
metrics_dump_path
on the top level CLI parameters, which if set will make sure metrics are collected at regular intervals and written to the provided path in CSV format.
- top level commands
iroh
- removed deprecated
client::MemIroh
useiroh::client::Iroh
insteadclient::QuicIroh
useiroh::client::Iroh
insteadclient::MemDoc
useiroh::client::docs::Doc
insteadclient::QuicDoc
useiroh::client::docs::Doc
instead
- removed deprecated
iroh-net
- renamed
- field:
magicsock::metrics::Metrics::update_endpoints
->update_direct_addrs
.
- field:
- relay server is now behind the
iroh-relay
feature flag - removed
endpoint::Builder::peers_path
- added
endpoint::Builder::known_nodes
- renamed
- no automatic storage of known peers anymore in
iroh-net
- Public interfaces using
tokio_util::task::LocalPoolHandle
now use our ownLocalPool
/LocalPoolHandle
.
⛰️ Features
- (ci) Publish docker images (#2520) - (c0fa1f4)
- (iroh-cli) [breaking] Realign cli commands with library (#2522) - (4c11c58)
- (iroh-net) Add holepunching events (#2495) - (8685222)
- (iroh-net) [breaking] Remove fs based peers storage (#2510) - (0a8cb8a)
- (iroh-net) Update netdev to 0.30 (#2528) - (214bb0c)
- (iroh-relay) Add more context to iroh-relay errors (#2506) - (04df203)
🐛 Bug Fixes
- (iroh-blobs) Properly handle Drop in local pool during shutdown (#2517) - (b4506b2)
- (iroh-docs) Do not dial invalid peers (#2470) - (7579caa)
- (iroh-metrics) Add the bind addr in errors for bind failures (#2511) - (50a8b5c)
🚜 Refactor
- (iroh) Make use of quic-rpc-derive macros to prettify the rpc declarations (#2508) - (026baaa)
- (iroh-net) [breaking] Move relay implemention in
iroh-net
behindiroh-relay
cfg flag (#2516) - (f37d9f9) - (iroh-net) Switch to new iroh-relay route
/relay
instead of/derp
(#2489) - (b7b493d) - (iroh-net) More renaming of endpoint to direct address (#2515) - (0c03f6e)
- (iroh-net) Remove random choice of direct addr (#2509) - (c1c3539)
- [breaking] Metrics (#2464) - (09e9746)
📚 Documentation
- (iroh-net) Fix broken HTTP/3 link (#2485) - (a5a2324)
- (iroh-net) Improve Endpoint::accept docs (#2492) - (79a2768)
🧪 Testing
⚙️ Miscellaneous Tasks
- (bytes) Bytes v1.6.0 was yanked so upgrade to bytes v1.6.1 (#2503) - (ecfbed3)
- Add a flaky tests failure report to our discord notification (#2496) - (f84c06e)
- Keep GitHub Actions up to date with GitHub's Dependabot (#2498) - (538efbf)
Deprecation
v0.20.0 - More ways to connect
⚠️ Breaking Changes
-
iroh-net
- Add
must_use
toutils::AbortingJoinHandle
- renamed
pkarr_publish
->pkarr
- removed
relay::http::server::Protocol::from_url_scheme
- removed
relay::http::ServerBuilder::relay_endpoint
iroh_net::defaults
is now split intoprod
andstaging
iroh_net::discovery::dns::N0_DNS_NODE_ORIGIN
is nowN0_DNS_NODE_ORIGIN_PROD
iroh_net::discovery::pkarr::N0_DNS_PKARR_RELAY
is nowN0_DNS_PKARR_RELAY_PROD
- Add
-
iroh
- rename
client::Iroh::my_relay
->home_relay
- rename
client::Iroh::my_addr
->node_addr
- rename
node::Node::my_relay
->home_relay
- rename
⛰️ Features
- (iroh) Add rpc request to add an AddrInfo (#2433) - (59e2719)
- (iroh) Gossip client (#2258) - (b0d5413)
- (iroh) Add missing gossip reexports (#2479) - (af36c2f)
- (iroh-net) Implement
websocket
protocol upgrade in iroh-relay (#2387) - (17c654e) - (iroh-net) [breaking] Make relay protocol configurable on
ClientBuilder
instead of defined by the relay url scheme (#2446) - (ab2c7ea) - (iroh-net) [breaking] Add PkarrResolver and publish direct addresses in PkarrPublisher when relay is disabled (#2417) - (5ba6855)
- (iroh-net) Local swarm discovery (#2376) - (3866b6f)
- [breaking] Split relay configuration between production and staging (#2425) - (d421ece)
- Add Asia Pacific relay url to the default relay url list in production (#2469) - (23790cb)
- Docker images for iroh (#2404) - (debc4fb)
🐛 Bug Fixes
- (cli) Always respect the
--metrics-port disabled
option (#2459) - (2c40984) - (iroh-bytes) Fix off-by-one error in Collection::load (#2473) - (3002deb)
- (iroh-docs) Ensure docs db write txn gets closed regularly under all circumstances (#2474) - (235c69c)
- (iroh-docs) [breaking] Add
flush_store
and use it to make sure the default author is persisted (#2471) - (b88dfa5) - (iroh-gossip) Gossip dispatcher: reliable events on join, allow dropping sinks or streams (#2482) - (998d29f)
- (iroh-net) Delays of non-stun probes for subsequent relays (#2445) - (b34587f)
- (iroh-net) Use staging URL for pkarr publish in dev mode (#2466) - (fe1d17f)
- (iroh-net) Unexpected
cfg
condition values / possible fix on netbsd (#2476) - (aff8152)
🚜 Refactor
- (iroh) Log inner errors (#2423) - (da3f84b)
- (iroh) [breaking] Attempt make naming more consistent (#2434) - (6b4435d)
- (iroh) Modularize protocol (#2454) - (5aa3fb6)
- (iroh) [breaking] Remove server channel type parameter (#2461) - (f4d1e71)
- (iroh-relay) [breaking] Remove
relay_endpoint
config option & rename/derp
route to/relay
(#2419) - (d4fe155)
📚 Documentation
- (iroh) Expand module level documentation in iroh (#2463) - (74e8a6a)
- (iroh-net) Update discovery and dialing docs, signatures (#2472) - (e53714c)
- Pass
Doc
instead ofIroh
in example (#2432) - (975124c) - Example requires
example
feature to run (#2451) - (623dcc6) - Reference rust doc style guide in contributing guidelines (#2452) - (32b23e6)
🧪 Testing
- (iroh-cli) Also test for "minutes" in transfer time regex 😬 (#2475) - (9dddafc)
- (iroh-net) Make some tests less flaky (#2457) - (bc0b397)
- Increase timeout test_run_rpc_lock_file (#2439) - (efececb)
- Increase timeouts for tests that are flaky on slow CI (#2450) - (cc30743)
⚙️ Miscellaneous Tasks
- (ci) Deny aws-lc backend to sneak in (#2436) - (6aef6aa)
- (ci) Separate out android builds & disable netbsd (#2435) - (002f5d5)
- (ci) Use pre-compiled binary on CI (#2429) - (cdad25a)
- (docs) Update readme (#2465) - (61f3f7e)
- (iroh) Improve and document
custom-protocol
example (#2468) - (203f9e7) - Introduce crate-ci/typos (#2430) - (c58f744)
Deps
v0.19.0 - Make it your own
⚠️ Breaking Changes
iroh
- Builder loses the
E
type parameter - ProtocolBuilder loses the
E
type parameter - rpc_endpoint takes a
boxed::ServerEndpoint
- renamed
client::Iroh::connect
->client::Iroh::connect_path
- added
client::Iroh::connect_addr
rpc_port
field toclient::NodeStatus
- Builder loses the
iroh-net
- The configuration file format for the
relay
server has changed, deployments will need to updated. For the full format seestruct Config
iniroh-net/src/bin/iroh-relay.rs
. Here a summary:- The 3 parts of the server now have an independent enable setting:
enable_relay
,enable_stun
andenable_metrics
. If omitted they default totrue
. - The way to specify which addresses the server listens on has changed:
http_bind_addr
is for the relay server,stun_bind_addr
for the STUN server,metrics_bind_addr
is for the optional metrics server andtls.https_bind_addr
is for when TLS is enabled. Note these are now all full socket addresses. All have sensible defaults if omitted. - There are new options in
tls.cert_path
andtls.key_path
which allow more control over where the manual TLS keys are to be read from.
- The 3 parts of the server now have an independent enable setting:
- removed
iroh_net::config
is removed.iroh_net::config::NetInfo
-> removediroh_net::config::LinkInfo
-> removedEndpoing::my_addr_with_endpoints
has been removed.
- renamed
Endpoint::local_endpoints
->Endpoint::direct_addresses
endpoint::LocalEndpointStream
->endpoint::DirectAddrStream
config::Endpoint
->magicsock::DirectAddr
config::EndpointType
->magicsock::DirectAddrType
Endpoint::local_addr
->Endpoint::bound_sockets
Endpoint::my_addr
->Endpoint::node_addr
Endpoint::my_relay
->Endpoint::home_relay
defaults::DEFAULT_RELAY_STUN_PORT
→defaults::DEFAULT_STUN_PORT
- changed
endpoint::Connecting::alpn
returnsVec<u8>
instead ofString
- The configuration file format for the
iroh-gossip
net::Gossip::update_endpoints
->net::Gossip::update_direct_addresses
⛰️ Features
- (iroh) Allow to disable docs engine completely (#2390) - (0e6d441)
- (iroh) Allow setting the logging directory via config file (#2391) - (600ba8c)
- (iroh) [breaking] Expand ability to connect to RPC (#2398) - (d30ed19)
🐛 Bug Fixes
- (iroh) Do not double-close docs on drop (#2383) - (55a0c0b)
- (iroh) Use two stage accept from quic-rpc (#2416) - (83b01ad)
- (iroh-net) [breaking] ALPNs can be bytes, not just strings (#2377) - (f57c34f)
- (iroh-net) Prevent adding addressing info that points back to us (#2333) - (b2e8557)
- (iroh-net)
poll_send
should drop transmits that we dont have adest
for (#2393) - (aba70ea) - Properly wait for docs engine shutdown (#2389) - (eb74cf6)
- Do not panic on blobs db IO error (#2400) - (38e8ce0)
🚜 Refactor
- (iroh) [breaking] Use ref-cast instead of fields to get the subsystem clients (#2374) - (be3e16e)
- (iroh) Allow to register custom protocols (#2358) - (13ded84)
- (iroh) Move code from builder to node and make things nicer (#2386) - (08f1fe0)
- (iroh) Use boxed client to get rid of the C type parameter (#2353) - (abc7f5e)
- (iroh) [breaking] Eliminate the type parameter for the rpc service type (#2405) - (52c96ba)
- (iroh-net) [breaking] Rename Endpoint::my_relay to home_relay (#2361) - (100d27d)
- (iroh-net) [breaking] Rename Endpoint::my_addr to Endpoint::node_addr (#2362) - (61d5109)
- (iroh-net) [breaking] Do not use &NodeId in APIs as this is Copy (#2363) - (e9075f3)
- (iroh-net) [breaking] Rename Endpoint::local_addr to bound_sockets (#2366) - (a5e5939)
- (iroh-net) [breaking] Rename Endpoint::local_endpoints to direct_addresses (#2369) - (2ac3d01)
- (iroh-net) Improve magicsock module visibility (#2371) - (3b0bb51)
- (iroh-net) [breaking] Rework relay-server binary, more configurable, reverse-proxy support (#2341) - (4ff1ec4)
- (iroh_net) [breaking] Remove Endpoint::my_addr_with_endpoints (#2359) - (3a2faea)
📚 Documentation
- (iroh-net) Update NodeAddr docs (#2365) - (53dfed1)
- (iroh-net) A few small fixes from PR review (#2375) - (ea7e654)
- Fix spelling in new protocol handler docs (#2385) - (f73c506)
🧪 Testing
⚙️ Miscellaneous Tasks
Deps
v0.18.0 - Small, but helpful
API Deprecations
Not breaking yet, but will be breaking in the next release.
iroh
client::Client.blobs
, useclient::Client::blobs()
client::Client.docs
, useclient::Client::docs()
client::Client.authors
, useclient::Client::authors()
client::Client.tags
, useclient::Client::tags()
API Breaking Changes
iroh-blobs
- removed
util::LivenessTracker
downloader::DownloadRequest
- field
tag
- function
untagged
- function
tag
- field
- added
util::TagDrop
util::TagCounter
- removed
iroh-gossip
- added
Gossip::max_message_size
- changed
net::util::read_message
, addedmax_message_size
paramnet::util::write_message
, addedmax_message_size
paramnet::util::read_lp
, addedmax_message_size
param
- removed
proto::MAX_MESSAGE_SIZE
- added
⛰️ Features
🐛 Bug Fixes
- (docs) Prevent deadlocks with streams returned from docs actor (#2346) - (98914ee)
- (iroh-net) Fix extra delay (#2330) - (77f92ef)
- (iroh-net) Return
Poll::Read(Ok(n))
when we have no relay URL or direct addresses inpoll_send
(#2322) - (b2f0b0e)
🚜 Refactor
- (iroh) [breaking] Replace public fields in iroh client with accessors and use ref-cast to eliminate them entirely (#2350) - (35ce780)
- (iroh) [breaking] Remove tags from downloader (#2348) - (82aa93f)
- (iroh-blobs) [breaking] Make TempTag non-Clone (#2338) - (d0662c2)
- (iroh-blobs) [breaking] Implement some collection related things on the client side (#2349) - (b047b28)
- Move docs engine into iroh-docs (#2343) - (3772889)
📚 Documentation
- (iroh-net) Update toplevel module documentation (#2329) - (4dd69f4)
- (iroh-net) Update endpoint docs (#2334) - (8d91b10)
🧪 Testing
⚙️ Miscellaneous Tasks
v0.17.0 - Everything is a little better
Breaking Changes
iroh
- added
client::Docs::import_namespace
client::Docs::import_and_subscribe
LiveEvent::PendingContentReady
client::Authors::default
client::Authors::set_default
iroh::util::path::IrohPaths::DefaultAuthor
- removed
iroh::node::Node::subscribe
iroh::node::Event
- added
iroh-net
- renamed
magic_endpoint
→endpoint
iroh_net::magic_endpoint::MagicEndpoint
->iroh_net::endpoint::Endpoint
iroh_net::magic_endpoint::MagicEndpointBuilder
->iroh_net::endpoint::Builder
iroh::node::Node::magic_endpoint
->iroh::node::Node::endpoint
- added
iroh_net::endpoint::Builder::proxy_url
iroh_net::endpoint::Builder::proxy_from_env
iroh_net::relay::http::ClientError::Proxy
iroh_net::endpoint::Endpoint::watch_home_relay
- moved
iroh_net::dns::node_info::lookup_by_domain
→iroh_net::ResolverExt::lookup_by_domain
- renamed
Full Changelog
⛰️ Features
- (cli) Add metrics server to iroh doctor (#2292) - (d635d93)
- (iroh) [breaking] Remove node events (#2274) - (b412927)
- (iroh) Add node wide default author for documents (#2299) - (c8690a2)
- (iroh-base) Wasm compatability (#2305) - (ab18eae)
- (iroh-net) Watch relay changes (#2291) - (9d71fd8)
- (iroh-net) [breaking] Implement http proxy support (#2298) - (6d1a6dd)
- (iroh-net) [breaking] Improve dns behaviour by staggering requests (#2313) - (d813089)
- Emit PendingContentReady event (#2302) - (fc73502)
- Import and subscribe to a document in a single call (#2303) - (370075c)
- Iroh-perf (#2186) - (98d45f3)
- [breaking] New quic-rpc, simlified generics, bump MSRV to 1.76 (#2268) - (1e31dcf)
- Support {Free|Net|Open}BSD (#2311) - (cd65470)
🐛 Bug Fixes
- (iroh) Make
client::docs::ImportProgress
public (#2288) - (acd859b) - (iroh-gossip) Do not drop existing connection on incoming one (#2318) - (e41d1d9)
- Do not bind a mainline DHT socket (#2296) - (491012c)
🚜 Refactor
- (iroh-net) [breaking] Rename MagicEndpoint -> Endpoint (#2287) - (f4d6ca1)
- (iroh-net) Small improvements to dns code (#2301) - (b93dd34)
- Do not use gossip subscribe_all in iroh sync engine (#2265) - (eebf6d1)