Skip to content

Releases: n0-computer/iroh

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

v0.14.0 - Dial the world

15 Apr 17:18
Compare
Choose a tag to compare

⛰️ Features

  • (iroh) Implement basic author api (#2132) - (5e1a71f)
  • (iroh-cli) Add file logging by default for start commands (#2175) - (b80b338)
  • (iroh-cli) Simplify config loading (#2171) - (2cfa055)
  • (iroh-net) Add MagicEndpoint::conn_type_stream returns a stream that reports connection type changes for a node_id (#2161) - (7986394)
  • Mark iroh-cli's iroh binary as workspace default (#2160) - (aeb04d8)
  • Update redb to v2 (#2120) - (ceaf168)
  • Node discovery via DNS (#2045) - (72384ce)
  • Add discovery option to doctor (#2182) - (2c1eca9)

πŸ› Bug Fixes

  • (iroh) Shutdown sync engine on iroh node shutdown (#2131) - (35a1cdd)
  • (iroh) Do not shut down node on internal rpc error (#2158) - (fcdc299)
  • (iroh-cli) Doctor relay-urls, correct connection logic (#2163) - (314c883)
  • (iroh-cli) Fix printing of doctor connect/accept output (#2166) - (5d4ac52)
  • (iroh-net) Avoid double connections to relays (#2148) - (aa1cf66)
  • (tests) Disable the metrics port of all cli tests (#2154) - (1d51caa)
  • Remove redundant imports (#2159) - (43038df)

🚜 Refactor

  • (iroh-bytes) Update bao-tree to 0.12 and adjust code (#2153) - (bfb7560)
  • (iroh-bytes) Use even newer bao-tree (#2168) - (fe6dcac)
  • (iroh-net) Remove incremental state from reportgen actor (#2180) - (d22c1cd)
  • (metrics) Metrics on by default (#2129) - (ff88f65)
  • Rustc beta is stricter again wrt imports and unused code (#2185) - (d6f336c)

πŸ“š Documentation

  • (gossip) Add comment about message uniqueness (#2140) - (9fc1266)

⚑ Performance

  • (iroh-net) Simplify relay handshake (#2164) - (70db5fb)
  • (iroh-sync) Avoid allocating a full range of values during sync (#2152) - (13e83f3)

πŸ§ͺ Testing

  • (iroh-net) Expose run_relay_server and option to skip cert verification to tests (#2145) - (fb4703a)

βš™οΈ Miscellaneous Tasks

Deps

v0.13.0 - Connect, Store & Repeat

25 Mar 17:38
Compare
Choose a tag to compare

⛰️ Features

  • (deps) Update from trust-dns-resolver to hickory-resolver (#2033) - (af7783e)
  • (iroh) Add blobs.create_collection api endpoint - (1f6153b)
  • (iroh) Add more rpc methods (#1962) - (4910df1)
  • (iroh) Add --log-fd flag on unix (#2011) - (8e60d1b)
  • (iroh) Expose ExportMode in client API (#2031) - (ac667bb)
  • (iroh) Add Sync bound and Stream impl for BlobReader (#2063) - (09e3e52)
  • (iroh) Improved node builder (#2087) - (2364329)
  • (iroh) Expose GetSyncPeers (#2054) - (0b94992)
  • (iroh) Improve various aspects of the api (#2094) - (c776478)
  • (iroh-bytes) Bring back validation (#2107) - (50b3e47)
  • (iroh-net) DNS queries: lookup ipv6 & ipv4 in parallel (#2019) - (4615915)
  • (iroh-net) ICMPv6 probe support in netcheck (#2057) - (bbb55a8)
  • (iroh-net) Combine discovery services and add heuristics when to start discovery (#2056) - (f4d3fab)
  • (iroh-net) Use the local endpoints info when closing derps (#2082) - (8d86ffc)
  • Release artifacts & windows builds (#1987) - (13a3fe6)
  • Split CLI implementation into a new iroh-cli crate (#2076) - (5c70cd2)

πŸ› Bug Fixes

  • (ci) Cleanup and fix bugs (#1926) - (cced7f1)
  • (ci) Stop reusing concurrency labels across jobs (#1937) - (02ead0a)
  • (ci) Also test iroh-cli for cargo features (#2122) - (a136b1d)
  • (console) Prevent deadlock in author new --switch (#2032) - (fea92ac)
  • (derp) Restore ClientInfo mesh_key field (#2090) - (75a8590)
  • (examples) Adjust and add examples (#1968) - (9f10152)
  • (iroh) Add timestamp method to Entry RPC struct (#1949) - (0084b5f)
  • (iroh) Do not establish connection if content already exists locally (#1969) - (f7264ff)
  • (iroh) Improve and test blob share (#1979) - (5db247f)
  • (iroh) Do not remove the rpc lockfile if an iroh node is already running (#2013) - (a5c0db3)
  • (iroh) Properly shut down the store on control-c (#2100) - (7cc9efa)
  • (iroh-bytes) Print hashes as hex in validation (#2118) - (9d40459)
  • (iroh-net) Improve connectivity (#1983) - (4b58de5)
  • (iroh-net) Improve direct connectivity establishment speed and reliablity (#1984) - (b173520)
  • (iroh-net) Correctly report sent transmits in poll_send (#2025) - (b0afd40)
  • (iroh-net) Race ipv4 and ipv6 dns resolution (#2026) - (19553ed)
  • (iroh-net) Ensure netcheck finishes once it has results (#2027) - (c62950e)
  • (iroh-net) Fix in detecting globally routable IPv6 addresses (#2030) - (c3aa17e)
  • (iroh-net) Handle unreachable IPv6 networks better (#2029) - (436121f)
  • (iroh-net) Fix some flaky magicsock tests (#2034) - (df57623)
  • (iroh-net) Trigger netcheck on a magicsock rebind (#2042) - (890d019)
  • (iroh-net) Work around broken windows DNS configuration (#2075) - (3747a09)
  • (iroh-net) Improve backpressure handling (#2105) - (b98ed9d)
  • (iroh-sync) Dl policies exists only if doc exists (#1921) - (de7f603)
  • (iroh-sync) Sync peers exists only if doc exists (#1920) - (2835f62)
  • Allow some dead code for the nightly compiler (#1934) - (ca20102)
  • Build successfully from cargo vendor tarball (#1932) - (2337cb2)
  • Ci windows releases - (ed23c43)
  • Ci release builds (#1988) - (4abb782)
  • Update deps to avoid cargo-deny warning (#2059) - (bc1af2e)
  • Properly shutdown sync actor (#2067) - (e96a0c1)
  • Remove dead code detected by the rust beta compiler (#2121) - (2c59d7d)
  • Do not allow connecting to ourself ([#2123](https://github.c...
Read more

v0.12.0 - Derp Regions are dead, long live the derpers

20 Dec 20:30
Compare
Choose a tag to compare

⛰️ Features

  • (bytes) Switch to a single directory for the flat store (#1855) - (adc88f3)
  • (net) Add Magicsock::network_change (#1845) - (3952b04)
  • Usage metrics reporting (#1862) - (7ec4d92)
  • Remove derp regions in favor of direct urls (#1831) - (4002c46)
  • Additional public get utils - (1389857)

πŸ› Bug Fixes

  • (ci) Enable forks to run netsim manually (#1834) - (54acfcb)
  • (iroh) Check output for blob get (#1898) - (52f17a3)
  • (iroh) Do not exit after commands (#1899) - (53ab3b0)
  • (iroh-net) Fix display of mixed type connections (#1882) - (9d047e0)
  • (iroh-net) Do not prune addrs that are just added (#1916) - (4b18e67)
  • (sync) Handle migration 004 in the empty case (#1852) - (860563f)
  • Use path_to_key helper function in iroh doc import (#1811) - (64b668e)
  • Do not block on network change (#1885) - (54d5efc)
  • Fix abort on ctrl-c in console (#1909) - (712b45e)

🚜 Refactor

πŸ§ͺ Testing

  • (iroh-net) Try fix flaky udp_blocked test - (0418af6)
  • (net) Use actual derp hostname and reduce iteration count (#1886) - (62ac4d8)

βš™οΈ Miscellaneous Tasks

  • (ci) Run cargo build for android platforms (#1843) - (227f0e8)
  • (ci) Configure sccache to use local caches (#1865) - (4b07c2d)
  • (ci) Split jobs so they do not stomp over target directory (#1871) - (b9709ef)
  • (ci) Pin clippy to specific nightly version (#1874) - (6433a66)
  • (ci) Windows sccache (#1873) - (0d9ebea)
  • (ci) Split release builds from regular CI flows (#1883) - (ce97cee)
  • (ci) Test derper deploy flow (#1884) - (a1c5b56)
  • (ci) Use TRACE logging for tests run by nextest (#1902) - (b789a1f)
  • (clippy) Fix some warnings (#1861) - (57bb691)
  • (docs) Update derp IP for EU region (#1880) - (5c43b1d)
  • (iroh,iroh-bytes) Fix manifest keywords (#1881) - (b4da5f4)
  • Add BSD3 license note for code derived from tailscale (#1889) - (876a0f5)

Ref

  • (iroh-net) Improve how STUN probes are run (#1642) - (b95eb86)

v0.11.0 - Making CLI life a little easier

17 Nov 22:01
Compare
Choose a tag to compare

⛰️ Features

  • (iroh) Store rpc port in iroh data dir (#1783) - (d471477)
  • (iroh) Make out argument required for iroh get (#1786) - (0e0f641)
  • (iroh) Allow full and short hash printing in the cli (#1795) - (018772c)
  • Add Doc::import_file and Doc::export_file (#1793) - (fe7fc50)

πŸ› Bug Fixes

🚜 Refactor

  • (iroh) Restructure cli modules to match command structure (#1799) - (c1aeeb1)
  • (iroh) Add --start option to CLI commands (#1802) - (10af401)
  • (logging) Log hairpin results at debug level (#1809) - (ca8a983)
  • Common base library (#1780) - (de58d71)
  • More renaming of the term peer id to node id (#1789) - (53f1b61)

βš™οΈ Miscellaneous Tasks

v0.10.0

08 Nov 10:54
Compare
Choose a tag to compare

⛰️ Features

  • (iroh-sync) Read only replicas (#1770) - (c1ebea8)
  • (iroh-sync) Queries and "views" (#1766) - (899768a)
  • Add ability to connect just by node id - (5ee69a4)

πŸ› Bug Fixes

🚜 Refactor

  • ()* Rename Peer to Node in peer_map related code (#1771) - (fbeeab7)
  • (iroh-net) Remove cli ping (#1764) - (2b70426)
  • (iroh-net) Rename PeerAddr to NodeAddr, introduce NodeId alias (#1765) - (215953f)

βš™οΈ Miscellaneous Tasks

  • (iroh-net) Demote 'pong not received in timeout' message to debug (#1769) - (56e92ca)
  • Switch to git-cliff for changelog generation - (bcdccb3)

v0.9.0 - Stabilized Connections

31 Oct 10:50
Compare
Choose a tag to compare

Bug Fixes

Features

  • console: blob share ticket (#1746) (fa9fa83)
  • iroh: add ticket prefixes and a doctor ticket-inspect command (#1711) (2d292e3)
  • iroh: pass a runtime to Doc client to spawn close task on drop (#1758) (0c145d5)

v0.8.0 - Better sync, faster blobs

23 Oct 18:10
Compare
Choose a tag to compare

Breaking API Changes

  • iroh::baomap is now iroh_bytes::store.
  • Doc opening and closing is now more complete
    • iroh::client::Doc.leave() will stop listening to changes
    • iroh::client::DocsClient.drop_doc() will delete a doc

Bug Fixes

Features

Performance Improvements