Releases: n0-computer/iroh
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
Performance Improvements
v0.7.0 - syncing intensifies
Bug Fixes
iroh::downloader
: remove hash fromproviders
in two missed cases (#1584) (068f0bd)- actually allow to disable DERP (#1560) (cf9abc0), closes #1558
- avoid blockage in endpoint handling (#1569) (ccdf0c9), closes #1568
- cli,console: default to 'hash' mode for the keys command (#1617) (c3571e1)
- derper: update config to auto generate keys (#1599) (8fb46d4)
- feature flags for iroh-io dependency (#1588) (c1c7d15)
- iroh-net: dialer bug (#1533) (16939c8)
- iroh-net: Do not unwrap sending on response channel (#1529) (974b66e), closes #1528
- iroh-net: reverse ip-port mapping stores only direct addresses in the peermap (#1606) (176d632), closes /datatracker.ietf.org/doc/html/rfc2460#section-6 /datatracker.ietf.org/doc/html/rfc2460#section-7
- mark initially created endpoints inactive (#1539) (9b61ab7), closes #1538
- metrics: labels need to be lowercase underscore format (#1574) (81c6f04)
- net: avoid deadlock on stayin_alive calls (#1537) (34fa30a)
- net: stop deleting endpoints we want to keep (#1567) (96cd106)
Features
doc import
&doc export
commands (#1563) (3c0195c)- add blobs from byte streams (#1550) (e138400)
- iroh-sync: store peers per doc (#1564) (31f08bb)
- iroh: export path and config related tooling (#1570) (c284793)
- iroh: improve displaying content in the repl (#1577) (2fd31b7)
- iroh: show content as hex when utf8 fails (#1596) (872f3b1)
- iroh: use reflink if possible (#1581) (e2ee678)
- leave and drop docs (#1589) (d7a3dd3), closes #1497
- log me (#1561) (7e79227)
- sync: Implement prefix deletion (#1535) (e7fc8be), closes #1504
- Use
BlobFormat
and properly support adding raw blobs (#1518) (f3ed0ba), closes #1496
Performance Improvements
v0.6.0 - Let that sync in
v0.6.0 is a big step toward iroh 1.0. It introduces documents. See our docs pages for a detailed look at the new iroh.
Introducing documents
Documents are mutable key-value stores that authors read from, write to, and sync with, subscribing to live updates in real time. For more on documents, see the documents, uh, documentation
Iroh console is here to help
this release includes iroh console
an admin, debugging, and API exploration tool. It's a REPL that can give live feedback as documents change, users sync, etc. For a detailed rundown on console commands, see the iroh command documentation
Bug Fixes
- avoid double conns, better state tracking (#1505) (d8cc9df), closes #1491
- Debug for BlobReader (#1479) (c6935bd)
- iroh: do not log full messages for rpc (#1453) (d4983c5)
- print enum variant name for RPC debug logs (#1503) (39a3a33)
- sync: fix
PeerData
encoding, neighbor events, better & predictable tests (#1513) (779e470), closes #1506 #1512
Features
- content hashes iterator for sync store (#1501) (8fe3f71), closes #1496
- Improve content propagation in sync (#1480) (49bde4f)
- iroh-net: implement network monitoring (#1472) (a89078f)
- iroh: downloader (#1420) (c217283), closes #1334 #1362 #1413
- streaming blob reads over RPC (#1477) (6397d46)
- sync: track incoming sync requests, allow subscriptions without sync, close inactive replicas (#1491) (6c07ad3)
v0.6.0-alpha.1 - Better Sync
This release includes important fixes and improvements based on recent testing. Document sync is now more correct and faster!
Bug Fixes
- iroh-net: dns fallback to default config (#1438) (b89f4e1), closes #1436
- iroh: update example to use correct subscription API (#1452) (2522fca), closes #1451
Features
v0.6.0-alpha.0 - Sync the world
This is the first alpha preview of iroh v0.6.0. iroh v0.6.0 is targeting a Sept 25th release date.
v0.6.0
is a big step toward iroh 1.0
. It introduces documents, see our docs pages for a detailed look at the new iroh.
Introducing documents
Documents are mutable key-value stores that authors read from, write to, and sync with, subscribing to live updates in real time. For more on documents, see the docmuents, uh, documentation
iroh console
is here to help
This release includes iroh console
an admin, debugging, and API exploration tool. It's a REPL that can give live feedback as documents change, users sync, etc. For a detailed rundown on console commands, see the iroh command documentation
v0.5.1 - Connectivity Intensifies
First you have to find one another, before you can interact.
This release is all about finding and connecting with your peers. Before iroh
could only connect with peers that were directly reachable, eg. static IP address or local LAN peers. Thanks to NATs and the various complications of IPv4 and IPv6 these are not that many machines in the world, and especially mobile devices are hard to discover.
So we are proud to present the first version of iroh
with builtin NAT traversal, hole punching and automatic relaying when everything fails.
If you want to find out the details on how all of this works, header over to the [Iroh Hole Punching](https://www.notion.so/Iroh-Hole-Punching-b9a38cc228fb47328a73e71d10520418?pvs=21).
Of course that is not all, we have also fixed some pesky bugs, as well added some more features, like generic collections and pluggable authentication.
On a practical side, iroh
is now split into multiple crates:
iroh
- The CLI and main library entry point.iroh-bytes
- The core data transfer protocol, including resume.iroh-net
- Nat traversal, peer management and general networking tools.iroh-metrics
- Metrics collection using prometheus
This should open up more possibilities when integrating just the pieces you need from iroh
into your app.
[Note: this ended up being 0.5.1
for iroh
and iroh-net
due to a publish issue with [email protected]
]