v0.90.0 #3376
ramfox
announced in
Announcements
v0.90.0
#3376
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
This is the first of our "canary" releases, where we implement the breaking changes needed to get to to our
1.0-rc
.If you are a new user or have a network that can handle protocol/wire-level breaking changes, please start here. If you already are using
iroh
in a network that cannot handle quick upgrades, stay on0.35
until1.0-rc
.iroh
removed
iroh::endpoint::Builder:: tls_x509
removed, this is the tls mechanism that has been removediroh::endpoint::Builder:: tls_raw_public_keys
removed, this is the default mechanism now, so not needed anymoreDisplay
implementation was removed forSecretKey
, use.to_bytes()
and encode as hex to get the previous bytes explicitly, for example:iroh_relay::protos::stun::StunError
iroh_relay::server::testing::stun_config
iroh_relay::protos::stun
iroh_relay::quic::QuicClient::get_addr_and_latency
DEFAULT_STUN_PORT
iroh::discovery::dns::DnsDiscovery::new
, useDnsDiscovery::builder
insteadiroh::discovery::pkarr::PkarrPublisher::new
, usePkarrPublisher::builder
insteadiroh::discovery::pkarr::PkarrPublisher::with_options
, usePkarrPublisher::builder
insteadiroh::discovery::pkarr::PkarrResolver::new
, usePkarrResolver::builder
insteadchanged
anyhow::Error
iroh::protocol::ProtocolHandler
methods now returnimpl Future
instead ofBoxFuture
. You can simply remove theBox::pin(async move {})
from the implementations and instead implement the methods asasync fn
. See the updated documentation for theiroh::protocol
module for an example.iroh::protocol::ProtocolHandler
is no longer dyn-compatible. If you need a dyn-compatible version, you need to build your own dyn-compatible wrapper trait. See the (non-public)DynProtocolHandler
iniroh::protocol
as an example.iroh::watcher
is now its own craten0-watcher
, but theWatcher
trait is still a top level export iniroh
iroh::endpoint::Endpoint::node_addr
now returnsimpl Watcher<Value = Option<NodeAddr>>
iroh::endpoint::Endpoint::home_relay
now returnsimpl Watcher<Value = Vec<RelayUrl>>
iroh::endpoint::Endpoint::bound_sockets
now returnsVec<SocketAddr>
iroh-quinn
is updated to0.14.0
iroh::protocol::RouterBuilder::accept
now takesimpl Into<Box<dyn DynProtocolHandler>>
instead ofimpl ProtocolHandler
. Because of a blanketFrom
impl this change does not need any changes by users: you can still pass anyimpl ProtocolHandler
toaccept
. Additionally, if you have your own builder struct upstream, you can now also pass aBox<dyn DynProtocolHandler>
toaccept
, which wasn't possible previously.iroh::discovery::Lagged
changed from a tuple to a structiroh::watcher::Disconnected
is changed from a tuple to a structiroh::watcher::Disconnected
is no longerUnwindSafe
orRefUnwindSafe
iroh::watcher::InitializedFut
is no longerRefUnwindSafeiroh-base
iroh::endpoint::Builder::add_discovery
now takes animpl iroh::discovery::IntoDiscovery
argument instead of a closure that returns aDiscovery
. You can implement that on a builder struct, and anyT: Discovery
has an auto-impl ofIntoDiscovery
.iroh::discovery::Discovery::resolve
no longer gets a&Endpoint
argument. If you need an endpoint in your discovery service, add a builder struct and implementIntoDiscovery
for it, which gives you an endpoint that you can clone into your serviceiroh::discovery::pkarr::PkarrPublisher::n0_dns
now takes no arguments and returns aPkarrPublisherBuilder
. The secret key is set onPkarrPublisherBuilder::build
instead.iroh-base
changed
iroh_base::ticket::Error
is renamed toiroh_base::ticket::ParseError
iroh_base::key::KeyParsingError
has changed from athiserror
error to asnafu
erroriroh-relay
iroh-relay
changed
iroh_relay::node_info::MaxLengthExceededError
is no longerUnwindSafe
orRefUnwindSafe
iroh_relay::node_info::MaxLengthExceededError
was changed from athiserror
to asnafu
erroriroh_relay::client::ConnSendError
is nowiroh_relay::client::SendError
iroh_relay::protos::stun::Error
is nowiroh_relay::protos::stun::StunError
⛰️ Features
n0_watcher::Watcher
trait (#3356) - (bc6e9e3)DynProtocolHandler
(#3366) - (056df1d)Endpoint::node_addr
watchable and addtrait Watcher
& combinators (#3045) - (7911255)iroh-base::ticket::ParseError
enum. (#3362) - (1859de3)🐛 Bug Fixes
🚜 Refactor
IntoDiscovery
trait (#3327) - (7f2cdd1)🧪 Testing
test_qad_client_closes_unresponsive_fast
test (#3332) - (b647af9)⚙️ Miscellaneous Tasks
iroh-metrics
,portmapper
, andswarm-discovery
(#3369) - (79bc05b)Bugfix
Example
This discussion was created from the release v0.90.0.
Beta Was this translation helpful? Give feedback.
All reactions