Releases: n0-computer/iroh
Releases · n0-computer/iroh
v0.21.0 - Fix, Clean & Polish
⚠️ Breaking Changes
Protocol Changes
- iroh-relay
- Clients will dial
/relayinstead of/derp, this means all0.21nodes are only compatible with relays>= 0.20
- Clients will dial
API Changes
iroh-cli- top level commands
author->authorsblob->blobsdoc->docstag->tags- sub commands
new->create
- added
metrics_dump_pathon 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::MemIrohuseiroh::client::Irohinsteadclient::QuicIrohuseiroh::client::Irohinsteadclient::MemDocuseiroh::client::docs::Docinsteadclient::QuicDocuseiroh::client::docs::Docinstead
- removed deprecated
iroh-net- renamed
- field:
magicsock::metrics::Metrics::update_endpoints->update_direct_addrs.
- field:
- relay server is now behind the
iroh-relayfeature 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::LocalPoolHandlenow 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-netbehindiroh-relaycfg flag (#2516) - (f37d9f9) - (iroh-net) Switch to new iroh-relay route
/relayinstead 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_usetoutils::AbortingJoinHandle - renamed
pkarr_publish->pkarr - removed
relay::http::server::Protocol::from_url_scheme - removed
relay::http::ServerBuilder::relay_endpoint iroh_net::defaultsis now split intoprodandstagingiroh_net::discovery::dns::N0_DNS_NODE_ORIGINis nowN0_DNS_NODE_ORIGIN_PRODiroh_net::discovery::pkarr::N0_DNS_PKARR_RELAYis 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
websocketprotocol upgrade in iroh-relay (#2387) - (17c654e) - (iroh-net) [breaking] Make relay protocol configurable on
ClientBuilderinstead 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 disabledoption (#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_storeand 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
cfgcondition 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_endpointconfig option & rename/derproute 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
Docinstead ofIrohin example (#2432) - (975124c) - Example requires
examplefeature 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-protocolexample (#2468) - (203f9e7) - Introduce crate-ci/typos (#2430) - (c58f744)
Deps
v0.19.0 - Make it your own
⚠️ Breaking Changes
iroh- Builder loses the
Etype parameter - ProtocolBuilder loses the
Etype parameter - rpc_endpoint takes a
boxed::ServerEndpoint - renamed
client::Iroh::connect->client::Iroh::connect_path
- added
client::Iroh::connect_addrrpc_portfield toclient::NodeStatus
- Builder loses the
iroh-net- The configuration file format for the
relayserver has changed, deployments will need to updated. For the full format seestruct Configiniroh-net/src/bin/iroh-relay.rs. Here a summary:- The 3 parts of the server now have an independent enable setting:
enable_relay,enable_stunandenable_metrics. If omitted they default totrue. - The way to specify which addresses the server listens on has changed:
http_bind_addris for the relay server,stun_bind_addrfor the STUN server,metrics_bind_addris for the optional metrics server andtls.https_bind_addris 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_pathandtls.key_pathwhich 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::configis removed.iroh_net::config::NetInfo-> removediroh_net::config::LinkInfo-> removedEndpoing::my_addr_with_endpointshas been removed.
- renamed
Endpoint::local_endpoints->Endpoint::direct_addressesendpoint::LocalEndpointStream->endpoint::DirectAddrStreamconfig::Endpoint->magicsock::DirectAddrconfig::EndpointType->magicsock::DirectAddrTypeEndpoint::local_addr->Endpoint::bound_socketsEndpoint::my_addr->Endpoint::node_addrEndpoint::my_relay->Endpoint::home_relaydefaults::DEFAULT_RELAY_STUN_PORT→defaults::DEFAULT_STUN_PORT
- changed
endpoint::Connecting::alpnreturnsVec<u8>instead ofString
- The configuration file format for the
iroh-gossipnet::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_sendshould drop transmits that we dont have adestfor (#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.
irohclient::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::LivenessTrackerdownloader::DownloadRequest- field
tag - function
untagged - function
tag
- field
- added
util::TagDroputil::TagCounter
- removed
iroh-gossip- added
Gossip::max_message_size
- changed
net::util::read_message, addedmax_message_sizeparamnet::util::write_message, addedmax_message_sizeparamnet::util::read_lp, addedmax_message_sizeparam
- 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)
🧪 Testing
⚙️ Miscellaneous Tasks
v0.17.0 - Everything is a little better
Breaking Changes
iroh- added
client::Docs::import_namespaceclient::Docs::import_and_subscribeLiveEvent::PendingContentReadyclient::Authors::defaultclient::Authors::set_defaultiroh::util::path::IrohPaths::DefaultAuthor
- removed
iroh::node::Node::subscribeiroh::node::Event
- added
iroh-net- renamed
magic_endpoint→endpointiroh_net::magic_endpoint::MagicEndpoint->iroh_net::endpoint::Endpointiroh_net::magic_endpoint::MagicEndpointBuilder->iroh_net::endpoint::Builderiroh::node::Node::magic_endpoint->iroh::node::Node::endpoint
- added
iroh_net::endpoint::Builder::proxy_urliroh_net::endpoint::Builder::proxy_from_enviroh_net::relay::http::ClientError::Proxyiroh_net::endpoint::Endpoint::watch_home_relay
- moved
iroh_net::dns::node_info::lookup_by_domain→iroh_net::ResolverExt::lookup_by_domain
- renamed
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::ImportProgresspublic (#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
🧪 Testing
⚙️ Miscellaneous Tasks
v0.16.2 - the one that needed patching
v0.16.0 - a better client
Breaking Changes
iroh-bytesis nowiroh-blobsiroh-syncis nowiroh-docs
iroh-net
- renamed:
magicsock::ConnectionType->magic_endpoint::ConnectionTypemagicsock::ControlMsg->iroh_net::magic_endpoint::ControlMsgmagicsock::ConnectionInfo->iroh_net::magic_endpoint::ConnectionInfomagicsock::ConnectionTypeStream->iroh_net::magic_endpoint::ConnectionTypeStreammagicsock::DirectAddrInfo->iroh_net::magic_endpoint::DirectAddrInfomagicsock::LocalEndpointsStream->iroh_net::magic_endpoint::LocalEndpointsStream
- made private:
net::interfacesmagicsock
MagicEndpoint::acceptnow returnsmagic_endpoint::Acceptrather than Quinn'sAccepttype.magic_endpoint::Connectingreplacesquinn::Connecting. This is the type returned by.awaiting theAcceptfuture.magic_endpoint::accept_connandmagic_endpoint::get_alpnhave been removed. You now accept the connection by directly awaiting the futures returned. To retrieve the ALPN use the newConnecting::alpnmethod.
iroh
- renamed:
sync->docsbytes->blobsProviderService->RpcServiceiroh::clientmem::Iroh->MemIrohmem::Doc->MemDocquic::Iroh->QuicIrohquic::Doc->QuicDocblobs::BlobReader->blobs::Readerblobs::BlobAddProgress->blobs::AddProgressblobs::BlobAddOutcome->blobs::AddOutcomeblobs::BlobDownloadProgress->blobs::DownloadProgressblobs::BlobDownloadOutcome->blobs::DownloadOutcomeblobs::BlobExportProgress->blobs::ExportProgressdocs::DocImportFileProgress->docs::ImportFileProgressdocs::DocExportFileProgress->docs::ExportFileProgressdocs::DocImportFileOutcome->docs::ImportFileOutcomedocs::DocExportFileOutcome->docs::ExportFileOutcome
rpc_protocol::NodeStatusResponse->client::node::NodeStatusrpc_protocol::ListTagsResponse->client::tags::TagInforpc_protocol::BlobListResponse->client::blobs::BlobInforpc_protocol::BlobListIncompleteResponse->client::blobs::IncompleteBlobInforpc_protocol::BlobListCollectionResponse->client::blobs::CollectionInforpc_protocol::DownloadMode->client::blobs::DownloadMode
- moved:
DocTicketintoiroh-syncclient::Node::stats->client::Client::statsclient::Node::connections->client::Client::connectionsclient::Node::connection_info->client::Client::connection_infoclient::Node::status->client::Client::statusclient::Node::id->client::Client::node_idclient::Node::shutdown->client::Client::shutdown
- removed:
ticketmoduledialmodule
- made private:
sync_engineclient::rpc_protocolclient::quic::RPC_ALPNclient::quic::connect_raw
- added:
client::node::Client::idclient::blobs::Client::download_with_optsclient::blobs::Client::download_hash_seqclient::Client::my_relayclient::Client::my_addr
- removed
node::Node::ticket, useclient::blobs::Client::shareinstead
⛰️ 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-netto 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
BlobDownloadRequesthas a new fieldmodeto 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
AddrInfoOptionsis nowId, before it wasRelayandAddresses - Added
addr_optionstoiroh::client::docs::Docs.share - Added
Idoption toAddrInfoOptions
iroh-bytes
Roleenum is removedDownloader::queuenow takes aDownloadRequestwith more options than beforeDownloadProgresshas a new variantInitialStatewhich is emitted when attaching to an already-running downloadConcurrencyLimitsgained a new field
iroh-net
MagicEndpoint::closenow consumes the endpoint.- Created new public struct
RelayUrlInfothat combines therelay_urland additional information about the state of our connection to the remote node at this relay URL NodeInfo.relay_url(calledConnectionInfooutside 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::MagicSockno longer accessible. UseMagicEndpointinstead. - Now private:
iroh_net::magicsock::OptionsUsed internally only. - Now private::
iroh_net::magicsock::PacketSplitIterThis is an implementation detail of internal use only. - Now private:
iroh_net::magicsock::TimerThis is an implementation detail of internal use only. - Now private:
iroh_net::magicsock::UdpSocketThis is an implementation detail of internal use only.
iroh-dns-server
iroh_dns_server::config::Configstruct has a new fieldmainline.
iroh-cli
- renamed
iroh-cli:doc share --ticket-options->doc share --addr-options
Other
SetTagOptionwas moved fromirohtoiroh-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_streamreturns 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_serverand 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
ExportModein 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
ClientInfomesh_keyfield (#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 vendortarball (#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...