Skip to content

Releases: n0-computer/iroh

v0.23.0

20 Aug 14:10
Compare
Choose a tag to compare

Read All about this release on our blog post!

⚠️ Breaking Changes

  • iroh
    • No more deref of iroh::net::Client to iroh::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 case NotFound
    • iroh::client::blobs::BlobStatus::Partial: size is now a BaoBlobSize instead of a u64
    • V0 and V1 of the iroh_blobs store are deprecated. Ensure data that is imported as iroh_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
  • iroh-cli
    • --metrics-port flag on the iroh cli is now --metrics-addr, eg: specify 127.0.0.1:9090 instead of 9090
    • node connection-info -> node remote-info
    • node connections -> node remote-list
  • iroh-blobs
    • Modifies Event enum:
      • removes CustomGetRequestReceived
      • adds TransferProgress
    • send_blob now takes an EventSender
    • trait EventSender has been renamed CustomEventSender
    • the concrete (boxed) event sender is now called just EventSender
    • FlumeProgressSender is now AsyncChannelProgressSender
    • 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.
  • iroh-net
    • LocalSwarmDiscovery is not longer UnwindSafe
    • 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 correct iroh 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 to connection 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

Ref

  • (iroh-net) Move PathState to its own module (#2587) - (2e937a8)

v0.22.0 - Clean up on aisle five

05 Aug 20:58
Compare
Choose a tag to compare

⚠️ Breaking Changes

  • iroh-gossip

    • iroh_gossip::dispatcher is removed with everything that was in it. Use the new API from iroh_gossip::net::Gossip instead (see below).
    • iroh_gossip::net::Gossip methods changed:
      • changed: join now returns a GossipTopic
      • removed: broadcastbroadcast_neighborssubscribesubscribe_allquit.
        • for subscribe use join instead, which returns a GossipTopic
        • for broadcast and broadcast_neighbors use the respective methods on GossipTopic .
        • quit is obsolete now, the topic will be quitted once all GossipTopic handles are dropped.
        • subscribe_all is no longer available
    • 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::* to iroh_net::relay::server::*
        • iroh_net::relay::ClientConnHandler to iroh_net::relay::server::ClientConnHandler
        • iroh_net::relay::Metrics to iroh_net::relay::server::Metrics
        • iroh_net::relay::MaybeTlsStreamServer to iroh_net::relay::server::MaybeTlsStreamServer
        • iroh_net::relay::http::Client to iroh_net::relay::HttpClient
        • iroh_net::relay::http::ClientBuilder to iroh_net::relay::HttpClientBuilder
        • iroh_net::relay::http::ClientReceiver to iroh_net::relay::HttpClientReceiver
        • iroh_net::relay::http::ClientError to iroh_net::relay::HttpClientError
        • iroh_net::relay::http::TlsConfig to iroh_net::relay::server::TlsConfig
      • removed iroh_net::relay::http::ServerHandle. The server can now be aborted via its task_handle() function or by dropping it.
      • renamed iroh_net::relay::RelayClient to iroh_net::relay::RelayConn
      • renamed and moved iroh_net::relay::Server to iroh_net::relay::server::ServerActorTask
      • unexposed iroh_net::relay::http::{Server, ServerBuilder}. Use iroh_net::relay::server::Server instead.
    • Properly feature-gate the iroh server implementation behind #[cfg(feature = "iroh-relay")] by feature-gating the whole iroh_net::relay::server module.
  • 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

Ref

  • (iroh-net) Don't write the match as fully exhaustive (#2585) - (43ef8b6)

v0.21.0 - Fix, Clean & Polish

22 Jul 18:39
Compare
Choose a tag to compare

⚠️ Breaking Changes

Protocol Changes

  • iroh-relay
    • Clients will dial /relay instead of /derp, this means all 0.21 nodes are only compatible with relays >= 0.20

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.
  • iroh
    • removed deprecated
      • client::MemIroh use iroh::client::Iroh instead
      • client::QuicIroh use iroh::client::Iroh instead
      • client::MemDocuse iroh::client::docs::Doc instead
      • client::QuicDoc use iroh::client::docs::Doc instead
  • iroh-net
    • renamed
      • field: magicsock::metrics::Metrics::update_endpoints -> update_direct_addrs.
    • relay server is now behind the iroh-relay feature flag
    • removed
      • endpoint::Builder::peers_path
    • added
      • endpoint::Builder::known_nodes
  • no automatic storage of known peers anymore in iroh-net
  • Public interfaces using tokio_util::task::LocalPoolHandle now use our own LocalPool/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 behind iroh-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

🧪 Testing

  • (iroh-cli) Improve bao_store_migration test logging (#2483) - (d17ffa3)

⚙️ 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

  • (iroh) [breaking] Remove deprecated type aliases (#2467) - (0102b05)

v0.20.0 - More ways to connect

09 Jul 12:49
Compare
Choose a tag to compare

⚠️ Breaking Changes

  • iroh-net

    • Add must_use to utils::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 into prod and staging
    • iroh_net::discovery::dns::N0_DNS_NODE_ORIGIN is now N0_DNS_NODE_ORIGIN_PROD
    • iroh_net::discovery::pkarr::N0_DNS_PKARR_RELAY is now N0_DNS_PKARR_RELAY_PROD
  • iroh

    • rename client::Iroh::my_relay -> home_relay
    • rename client::Iroh::my_addr -> node_addr
    • rename node::Node::my_relay -> home_relay

⛰️ 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 of Iroh 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

Deps

v0.19.0 - Make it your own

27 Jun 10:05
Compare
Choose a tag to compare

⚠️ 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 to client::NodeStatus
  • iroh-net
    • The configuration file format for the relay server has changed, deployments will need to updated. For the full format see struct Config in iroh-net/src/bin/iroh-relay.rs. Here a summary:
      • The 3 parts of the server now have an independent enable setting: enable_relayenable_stun and enable_metrics. If omitted they default to true.
      • 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 and tls.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 and tls.key_path which allow more control over where the manual TLS keys are to be read from.
    • removed
      • iroh_net::config is removed.
      • iroh_net::config::NetInfo -> removed
      • iroh_net::config::LinkInfo -> removed
      • Endpoing::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 returns Vec<u8> instead of String
  • 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 a dest 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

🧪 Testing

⚙️ Miscellaneous Tasks

Deps

v0.18.0 - Small, but helpful

07 Jun 14:00
Compare
Choose a tag to compare

API Deprecations

Not breaking yet, but will be breaking in the next release.

  • iroh
    • client::Client.blobs, use client::Client::blobs()
    • client::Client.docs, use client::Client::docs()
    • client::Client.authors, use client::Client::authors()
    • client::Client.tags, use client::Client::tags()

API Breaking Changes

  • iroh-blobs
    • removed
      • util::LivenessTracker
      • downloader::DownloadRequest
        • field tag
        • function untagged
        • function tag
    • added
      • util::TagDrop
      • util::TagCounter
  • iroh-gossip
    • added
      • Gossip::max_message_size
    • changed
      • net::util::read_message, added max_message_size param
      • net::util::write_message, added max_message_size param
      • net::util::read_lp, added max_message_size param
    • removed
      • proto::MAX_MESSAGE_SIZE

⛰️ Features

  • (iroh-gossip) Configure the max message size (#2340) - (7153a38)

🐛 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 in poll_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

24 May 20:30
Compare
Choose a tag to compare

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
  • iroh-net
    • renamed
      • magic_endpointendpoint
      • 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_domainiroh_net::ResolverExt::lookup_by_domain

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)

📚 Documentation

  • (iroh-net) Minor tweaks in the public iroh_net::dns module (#2289) - (3f6b8e7)

🧪 Testing

⚙️ Miscellaneous Tasks

  • Minimize use of raw base32 in examples (#2304) - (1fafc9e)

v0.16.2 - the one that needed patching

13 May 17:41
Compare
Choose a tag to compare

🐛 Bug Fixes

  • (iroh) Make client::docs::ImportProgress public (#2288) - (abdbf22)

v0.16.0 - a better client

13 May 15:12
Compare
Choose a tag to compare

Breaking Changes

  • iroh-bytes is now iroh-blobs
  • iroh-sync is now iroh-docs

iroh-net

  • renamed:
    • magicsock::ConnectionType -> magic_endpoint::ConnectionType
    • magicsock::ControlMsg -> iroh_net::magic_endpoint::ControlMsg
    • magicsock::ConnectionInfo -> iroh_net::magic_endpoint::ConnectionInfo
    • magicsock::ConnectionTypeStream -> iroh_net::magic_endpoint::ConnectionTypeStream
    • magicsock::DirectAddrInfo -> iroh_net::magic_endpoint::DirectAddrInfo
    • magicsock::LocalEndpointsStream -> iroh_net::magic_endpoint::LocalEndpointsStream
  • made private:
    • net::interfaces
    • magicsock
  • MagicEndpoint::accept now returns magic_endpoint::Accept rather than Quinn's Accept type.
  • magic_endpoint::Connecting replaces quinn::Connecting. This is the type returned by .awaiting the Accept future.
  • magic_endpoint::accept_conn and magic_endpoint::get_alpn have been removed. You now accept the connection by directly awaiting the futures returned. To retrieve the ALPN use the new Connecting::alpn method.

iroh

  • renamed:
    • sync -> docs
    • bytes -> blobs
    • ProviderService -> RpcService
    • iroh::client
      • mem::Iroh -> MemIroh
      • mem::Doc -> MemDoc
      • quic::Iroh -> QuicIroh
      • quic::Doc -> QuicDoc
      • blobs::BlobReader -> blobs::Reader
      • blobs::BlobAddProgress -> blobs::AddProgress
      • blobs::BlobAddOutcome -> blobs::AddOutcome
      • blobs::BlobDownloadProgress -> blobs::DownloadProgress
      • blobs::BlobDownloadOutcome -> blobs::DownloadOutcome
      • blobs::BlobExportProgress -> blobs::ExportProgress
      • docs::DocImportFileProgress -> docs::ImportFileProgress
      • docs::DocExportFileProgress -> docs::ExportFileProgress
      • docs::DocImportFileOutcome -> docs::ImportFileOutcome
      • docs::DocExportFileOutcome -> docs::ExportFileOutcome
    • rpc_protocol::NodeStatusResponse -> client::node::NodeStatus
    • rpc_protocol::ListTagsResponse -> client::tags::TagInfo
    • rpc_protocol::BlobListResponse -> client::blobs::BlobInfo
    • rpc_protocol::BlobListIncompleteResponse -> client::blobs::IncompleteBlobInfo
    • rpc_protocol::BlobListCollectionResponse -> client::blobs::CollectionInfo
    • rpc_protocol::DownloadMode -> client::blobs::DownloadMode
  • moved:
    • DocTicket into iroh-sync
    • client::Node::stats -> client::Client::stats
    • client::Node::connections -> client::Client::connections
    • client::Node::connection_info -> client::Client::connection_info
    • client::Node::status -> client::Client::status
    • client::Node::id -> client::Client::node_id
    • client::Node::shutdown -> client::Client::shutdown
  • removed:
    • ticket module
    • dial module
  • made private:
    • sync_engine
    • client::rpc_protocol
    • client::quic::RPC_ALPN
    • client::quic::connect_raw
  • added:
    • client::node::Client::id
    • client::blobs::Client::download_with_opts
    • client::blobs::Client::download_hash_seq
    • client::Client::my_relay
    • client::Client::my_addr
  • removed
    • node::Node::ticket, use client::blobs::Client::share instead

⛰️ Features

  • (doctor) Report connection type changes in rolling fashion (#2251) - (9a050a9)
  • (iroh) [breaking] Unify node api (#2275) - (6ed6b34)
  • (iroh-base) Allow the addr info of tickets to be empty (#2254) - (5502c5a)
  • (iroh-cli) Make ticket-inspect print full node ids (#2261) - (f099dab)
  • (iroh-cli) Add doctor plot (#2206) - (4f1d8b0)
  • (iroh-net) Expose DNS resolver (#2262) - (6504727)
  • (iroh-net) [breaking] Improve initial connection latency (#2234) - (ec48b0d)
  • (iroh-net) Own the public QUIC API (#2279) - (b62e904)
  • Update from default-net to rebranded netdev (#2264) - (302fea4)

🐛 Bug Fixes

  • (iroh-net) Reconfirm best addr when receiving data on it (#2255) - (6fbf4a9)
  • (iroh-net) Do not log as error if client disconnects from relay (#2259) - (cdedc43)

🚜 Refactor

  • (iroh) [breaking] Cleanup public API (#2263) - (d41f433)
  • (iroh-net) [breaking] Make the interfaces module private (#2266) - (38bdaef)
  • Renames iroh-sync & iroh-bytes (#2271) - (26d718f)

🧪 Testing

v0.15.0 - Shut me down

29 Apr 15:21
Compare
Choose a tag to compare

Breaking API Changes:

iroh

  • The BlobDownloadRequest has a new field mode to select between direct and queued downloads, and now contains a list of nodes in place of a single node before
  • Renamed: iroh::client::blobs::ShareTicketOptions -> iroh_base::node_addr::AddrInfoOptions
  • Default for AddrInfoOptions is now Id, before it was RelayandAddresses
  • Added addr_options to iroh::client::docs::Docs.share
  • Added Id option to AddrInfoOptions

iroh-bytes

  • Role enum is removed
  • Downloader::queue now takes a DownloadRequest with more options than before
  • DownloadProgress has a new variant InitialState which is emitted when attaching to an already-running download
  • ConcurrencyLimits gained a new field

iroh-net

  • MagicEndpoint::close now consumes the endpoint.
  • Created new public struct RelayUrlInfo that combines the relay_url and additional information about the state of our connection to the remote node at this relay URL
  • NodeInfo.relay_url (called ConnectionInfo outside of iroh-net) is now Option<RelayUrlInfo>, changed from Option<RelayUrl>
  • Renamed: MagicSock::tracked_endpoints -> MagicSock::connection_infos
  • Renamed: MagicSock::tracked_endpoint -> MagicSock::connection_info
  • Renamed: magicsock::EndpointInfo -> magicsock::ConnectionInfo
  • Renamed:iroh_net::magicsock::ConnectionType -> iroh_net::magic_endpoint::ConnectionType
  • Renamed:iroh_net::magicsock::ControlMsg -> iroh_net::magic_endpoint::ControlMsg
  • Renamed:iroh_net::magicsock::ConnectionInfo -> iroh_net::magic_endpoint::ConnectionInfo
  • Renamed:iroh_net::magicsock::ConnectionTypeStream -> iroh_net::magic_endpoint::ConnectionTypeStream
  • Renamed:iroh_net::magicsock::DirectAddrInfo -> iroh_net::magic_endpoint::DirectAddrInfo
  • Renamed:iroh_net::magicsock::LocalEndpointsStream -> iroh_net::magic_endpoint::LocalEndpointsStream
  • Now private: module magicsock
  • Now private:iroh_net::magicsock::MagicSock no longer accessible. Use MagicEndpoint instead.
  • Now private:iroh_net::magicsock::Options Used internally only.
  • Now private::iroh_net::magicsock::PacketSplitIter This is an implementation detail of internal use only.
  • Now private: iroh_net::magicsock::Timer This is an implementation detail of internal use only.
  • Now private: iroh_net::magicsock::UdpSocket This is an implementation detail of internal use only.

iroh-dns-server

  • iroh_dns_server::config::Config struct has a new field mainline.

iroh-cli

  • renamed iroh-cli: doc share --ticket-options -> doc share --addr-options

Other

  • SetTagOption was moved from iroh to iroh-bytes

⛰️ Features

  • (iroh-bytes) Add more context to errors (#2196) - (d3fec78)
  • (iroh-bytes) [breaking] Refactor downloader queue and add progress reporting (#2085) - (93290e3)
  • (iroh-bytes) Add copy fallback for Export::TryReference (#2233) - (ec7de88)
  • (iroh-dns-server) [breaking] Add dht fallback option (#2188) - (0b0508b)
  • (iroh-net) Extend discovery NodeInfo to allow direct addrs (#2201) - (2c49ee8)
  • Release automation (#2214) - (b5f8277)
  • [breaking] Implement improved address sharing options (#2230) - (a26a350)

🐛 Bug Fixes

  • (ci) Typo in semver rev check (#2213) - (2a6ae17)
  • (ci) Minor corrections for manual release runs (#2215) - (3a74d89)
  • (ci) Fix for windows release runs (#2216) - (2dfd0ae)
  • (ci) Release builds (#2219) - (ba7317d)
  • (deps) Update rustls (#2218) - (f508830)
  • (iroh-bytes) Do not log redundant file delete error (#2199) - (1e84ae0)
  • (iroh-bytes) Reduce log level from info to debug for most uncritical operations (#2202) - (6d36d00)
  • (iroh-cli) Avoid using debug formatting for rpc errors (#2203) - (508a812)
  • (iroh-dns-server) Fix bug in pkarr name parsing (#2200) - (2bb7bd5)
  • (iroh-gossip) Do not enable "metrics" feature for iroh-net by default (#2235) - (2693ec5)
  • (iroh-net) Suppress HostUnreachable network error as well (#2197) - (600393b)
  • (iroh-net) Better logging for pkarr publish (#2208) - (0f624cc)
  • (iroh-net) [breaking] Improve magicsock's shutdown story (#2227) - (265e284)
  • (iroh-net) [breaking] Only call quinn_connect if a send addr is available (#2225) - (e913051)
  • (iroh-net) Do not persist invalid node addresses (#2209) - (18b301a)
  • (iroh_net) Less agressive best_addr clearing on pong timeout (#2238) - (5329927)
  • (iroh_net) Track recv_data_ipv4 & recv_data_ipv6 (#2243) - (f8ff3bc)
  • Better logging for iroh-dns-server (#2195) - (075737d)
  • Semver check on main (#2212) - (5873a55)

🚜 Refactor

  • (iroh-net) [breaking] Rename endpoint for nodes to node_state (#2222) - (26e4564)
  • (iroh-net) Merge related fields regarding incoming pings (#2236) - (0f370ad)
  • (iroh-net) [breaking] Remove the magicsock module from the public api (#2247) - (06e0b7b)
  • (iroh-sync) Doc store batching (#2172) - (9b3165b)
  • Happy clippy (#2220) - (d6ff0cf)
  • Improve content downloading in docs (#2127) - (1432d61)
  • [breaking] Avoid using futures crate directly (#2117) - (b91b684)

📚 Documentation

Read more