Releases: n0-computer/iroh
Releases Β· n0-computer/iroh
v0.16.2 - the one that needed patching
v0.16.0 - a better client
Breaking Changes
iroh-bytes
is nowiroh-blobs
iroh-sync
is nowiroh-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 returnsmagic_endpoint::Accept
rather than Quinn'sAccept
type.magic_endpoint::Connecting
replacesquinn::Connecting
. This is the type returned by.await
ing theAccept
future.magic_endpoint::accept_conn
andmagic_endpoint::get_alpn
have been removed. You now accept the connection by directly awaiting the futures returned. To retrieve the ALPN use the newConnecting::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
intoiroh-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
moduledial
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
, useclient::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 rebrandednetdev
(#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
Breaking API Changes:
iroh
- The
BlobDownloadRequest
has a new fieldmode
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 nowId
, before it wasRelayandAddresses
- Added
addr_options
toiroh::client::docs::Docs.share
- Added
Id
option toAddrInfoOptions
iroh-bytes
Role
enum is removedDownloader::queue
now takes aDownloadRequest
with more options than beforeDownloadProgress
has a new variantInitialState
which is emitted when attaching to an already-running downloadConcurrencyLimits
gained a new field
iroh-net
MagicEndpoint::close
now consumes the endpoint.- Created new public struct
RelayUrlInfo
that combines therelay_url
and additional information about the state of our connection to the remote node at this relay URL NodeInfo.relay_url
(calledConnectionInfo
outside of iroh-net) is nowOption<RelayUrlInfo>
, changed fromOption<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. UseMagicEndpoint
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 fieldmainline
.
iroh-cli
- renamed
iroh-cli
:doc share --ticket-options
->doc share --addr-options
Other
SetTagOption
was moved fromiroh
toiroh-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
- Improve breaking change handling (#2207) - ([d55b782](d55b782a702ae4...
v0.14.0 - Dial the world
β°οΈ 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 anode_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
β‘ 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
- (ci) Upload iroh-dns-server binaries (#2189) - (d1f946e)
- Move metrics init into CLI (#2136) - (319e9cc)
- Remove unused dependencies (#2170) - (b07547b)
Deps
v0.13.0 - Connect, Store & Repeat
β°οΈ 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...
v0.12.0 - Derp Regions are dead, long live the derpers
β°οΈ 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 iniroh doc import
(#1811) - (64b668e) - Do not block on network change (#1885) - (54d5efc)
- Fix abort on ctrl-c in console (#1909) - (712b45e)
π Refactor
- (iroh) Remove the addr arg from start (#1830) - (e03de38)
- (iroh) Remove request token (#1828) - (1dfb7ac)
- (iroh) Remove rpc port option (#1842) - (d1fcfca)
- (iroh-bytes) Remove explicitly passing the runtime to the flat store (#1829) - (3d2e118)
- (iroh-net) Make
ControlMsg
public (#1895) - (c6bc3c2) - (logging) Reduce loglevel of blob GC (#1866) - (3b1652c)
- (tests) Slow down a hot loop (#1910) - (9ac88ef)
- Upgrade to hyper 1.0 (#1858) - (b8aa5d6)
- Streamline local endpoint discovery (#1847) - (cb20bb8)
- Client
Entry
with methods to read content (#1854) - (690e2aa)
π§ͺ 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
v0.11.0 - Making CLI life a little easier
β°οΈ Features
- (iroh) Store rpc port in iroh data dir (#1783) - (d471477)
- (iroh) Make
out
argument required foriroh get
(#1786) - (0e0f641) - (iroh) Allow full and short hash printing in the cli (#1795) - (018772c)
- Add
Doc::import_file
andDoc::export_file
(#1793) - (fe7fc50)
π Bug Fixes
- (iroh-sync) Ensure the authors table exists (#1807) - (39ed64e)
- Drop temp tag after doc insert (#1810) - (a608fe8)
- Netsim should fail on all failed tests (#1816) - (199a677)
π 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
β°οΈ 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
- (console) Blob download args (#1729) - (a916d4c)
- (iroh-bytes) Ensure to flush file to disk (#1778) - (0987022)
- (iroh-sync) Fix panic in send (#1773) - (c36cc6d)
- (iroh-sync) Prevent panic in namespace migration (#1775) - (84ae95a)
π 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
v0.9.0 - Stabilized Connections
Bug Fixes
- console: remove ticket separator to improve usability (#1754) (f6c6932)
- deps: iroh-sync (261debf)
- do not block on dropping UDP sockets (#1755) (cadb89b)
- do not block on netcheck (#1745) (8e6f5a9)
- do not wait_idle on endpoint close (#1753) (f4735c6), closes #1752
- iroh-net: correctly set the time in which a probe is created (#1722) (d44a7dc)
- iroh: handle rpc args in any position (#1739) (0ca61ad), closes #1639
- net: do not dial regions in parallel (#1736) (c851fe1)
- update ahash (#1708) (118c1d7), closes #1707
Features
v0.8.0 - Better sync, faster blobs
Breaking API Changes
iroh::baomap
is nowiroh_bytes::store
.- Doc opening and closing is now more complete
iroh::client::Doc.leave()
will stop listening to changesiroh::client::DocsClient.drop_doc()
will delete a doc
Bug Fixes
doc export
exports the latest entry at a given key (#1629) (b815576)- actually transfer newer entries for identical keys (#1630) (ef8c64b), closes /github.com/n0-computer/iroh/pull/1630/files#diff-be755583e5a892a8b9a6329e59cfc17e9633447fb7992db74eef670ba1508ccbR378 #1535
- avoid FuturesUnordered (#1647) (5813e09), closes #1646
- iroh-bytes: handle case of 0 sent bytes in send stats (#1625) (550303c)
- iroh-net: bring the doctor command up to date (#1656) (16773b0)
- iroh-net: direct address management (#1653) (90f73f7)
- iroh-net: enforce storing a single derp region per peer (#1607) (bfcce3d), closes #1576
- iroh-net: ping via relay, enable relay ping in derp only mode (#1632) (eec5425), closes #1576
- iroh-net: temp fix for progress bar when downloading a hash seq (#1658) (1b5760d)
- iroh: cleanly exit on Eof (#1695) (196ad7a), closes #1694
- iroh: do not exit on ctrl+c (#1691) (a658d4a), closes #1690
- net: correct packet math for poll_recv (#1698) (c603a9e)
- net: correctly track dial errors (#1706) (92bb5b4), closes #1702
Features
- console: improve the output of
node connections
andnode connection
(#1683) (d0c7cac) - iroh-net: cache for crypto keys (#1677) (f8f08a0)
- iroh-sync: Sync propagation (#1613) (d07e225)
- update dependencies (#1661) (133ca8a), closes #1442