Releases: n0-computer/iroh
Releases · n0-computer/iroh
v0.27.0
⚠️ Breaking Changes
iroh-net
- deprecated
iroh-net: Endpoint::connect_by_node_id
is deprecated (to be removed next release)
- removed
TEST_DNS_NODE_ORIGIN
- changed
- defaults to using prod relays unless
IROH_FORCE_STAGING_RELAYS
is set to a non empty value iroh_net::Endpoint::direct_addresses
now returns a stream yielding Items ofBTreeSet<DirectAddr>
instead ofVec<DirectAddr>
iroh-net: Endpoint::connect
now takes animpl Into<NodeAddr>
instead of aNodeAddr
NodeTicket::new
no longer returnsResult
but always succeeds (as it already did). This matches it'sFrom<NodeAddr>
impl which also never fails.
- defaults to using prod relays unless
- deprecated
⛰️ Features
- (iroh-net) Export the Ticket trait (#2765) - (e9f98a6)
- (iroh-net) [breaking] Allow using a NodeId directly in connect. (#2774) - (bd5e4fa)
- (iroh-net) Log the crate version number (#2746) - (12f74e2)
- (iroh-net) Add helper fn to enable n0 discovery publishing and resolving (#2775) - (ed903ae)
🐛 Bug Fixes
- (cfg) [breaking] Make sure we use correct relays (#2778) - (844b146)
- (ci) Add cleanup workflow to retain
generated-docs-preview
for only the last 25 PRs (#2758) - (8420674) - (ci) Netsim commenting fixes (#2766) - (97be9e3)
- (ci) Netsim does not interact with PR comments on forks (#2777) - (9902b2d)
- (ci) Make sure logs get uploaded on netsim failure (#2807) - (1436389)
- (deps) Update postcard to get rid of yanked critical-section (#2810) - (62e4bd4)
- (iroh-net) Keep the relay connection alive on read errors (#2782) - (383f1f9)
- (iroh-net) Emit the call-me-maybe.sent event in all cases (#2792) - (43f5fed)
- (iroh-net) Use
try_send
rather thansend
so we dont block the local swarm discovery service (#2794) - (2d04306) - (iroh-net) [breaking] DiscoveredDirectAddrs need to update the timestamp (#2808) - (85bd8b7)
🚜 Refactor
- (iroh-base) [breaking] No Result for creating new NodeTicket (#2771) - (f536789)
- (iroh-net) Log the pkarr relay when publishing (#2770) - (d514859)
- (iroh-net) Add tracing span context to spawned tasks (#2769) - (66549bf)
- (iroh-net) Keep connection name, remove connection count (#2779) - (6b1186f)
- (iroh-net) Optimise present nodes in ActiveRelay (#2781) - (c7ac982)
- (iroh-net) Failing to bind is not a Warning log (#2815) - (f08011a)
- (iroh-net) Attach Relay URL to a connecting client span (#2817) - (a0ce00e)
- (iroh-net) No portmapper is not a warning (#2816) - (f32f3f9)
- (iroh-net) Debug logging should not be per packet set (#2818) - (c82ada5)
- Display the socket addr and relay for a
ConnectionType::Mixed
(#2793) - (c349c43)
📚 Documentation
- ()* Document cargo features in docs (#2761) - (4d41a69)
- (iroh) Enable iroh_docsrs feature (#2780) - (234a856)
- (iroh-base) Clarify AddrInfoOptions a little (#2813) - (a36970a)
- (iroh-net) Add examples to discovery (#2786) - (ab3afef)
- (iroh-net) Add examples to the module docs (#2785) - (39d4bd9)
- (iroh-net) Some more example tweaking (#2811) - (af8c474)
- (iroh-net) Document cfg(test) items as well (#2819) - (a03a08e)
- (relay) Fix typos in map.rs (#2773) - (73ca58a)
🧪 Testing
⚙️ Miscellaneous Tasks
- (iroh-net) Upgrade igd-next, remove hyper 0.14 (#2804) - (5e40fe1)
- Format imports using rustfmt (#2812) - (8808a36)
- Increase version numbers and update (#2821) - (71b5903)
Deps
v0.26.0
⚠️ Breaking Changes
- changed
client::Blobs::read_at
andread_at_to_bytes
now take
ReadAtLen
instead ofOption<usize>
- by default
node::Node::memory
&persistent
have docs disabled
- removed
node::Builder::disable_docs
- added
node::Builder::enable_docs
iroh-net
- struct
DirectAddrInfo
now has fieldsources
, which is aHashMap
ofendpoint::Source
toDuration
. TheSource
is how we heard about the remote, and theDuration
is how long ago we heard about it. We keep only the shortestDuration
.
- struct
iroh-blobs
- changed
util::local_pool::LocalPool
will now install the tracing subscriber of the thread creating the pool, into each thread managed by the pool. Practically this should not break any code already managing their tracing subscribers either manually inside tasks or by setting a global subscriber before creating the pool. But if you really liked the behaviour of swallowing the logs on doing this it's a breaking change
- changed
⛰️ Features
- (iroh) Disable docs by default (#2748) - (eb4c4a6)
- (iroh) [breaking] Make blobs::read_at more flexible (#2756) - (33dc559)
- (iroh) Allow setting a custom
quinn::TransportConfig
(#2760) - (253f4f1) - (iroh-cli) Improve ergonomics of
iroh gossip subscribe
CLI cmd (#2751) - (90fd6f0) - Set derive_more to 1.0.0 (no beta!) (#2736) - (2d863a9)
🐛 Bug Fixes
- (ci) Make netsim work on forks (#2757) - (0953263)
- (examples) Make
collection-provide
,hello-world-provide
andrpc
work again (#2749) - (25c8305) - (iroh-blobs) Preserve tracing subscriber in the LocalPool (#2735) - (5dd8bd3)
- (iroh-blobs) Remove debugging logs & more cleanup (#2690) - (857e513)
- (iroh-net) Clear the recent pong time when pong is lost (#2743) - (8fb92f3)
🚜 Refactor
- (ci) Redo netsim CI (#2737) - (443139d)
- (iroh-net) Various logging improvements (#2744) - (2262fd5)
- (iroh-net) Remove PathState::recent_pong() (#2745) - (cafdc08)
📚 Documentation
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)