iroh_quic 1.0.1 copy "iroh_quic: ^1.0.1" to clipboard
iroh_quic: ^1.0.1 copied to clipboard

Pure-Dart binding for iroh 1.0 - peer-to-peer QUIC networking with endpoints, connections, streams, relays, and address lookup over the Rust core. No Flutter: load a signed prebuilt native library via [...]

Changelog #

1.0.1 Dart-only (Flutter dropped) #

The package is now pure Dart — no flutter SDK dependency, runnable under dart run / dart test. The Dart/Rust API is unchanged; only the packaging moves off Flutter, so existing code keeps working.

  • Prebuilt native libraries — no Rust toolchain required. Run dart run iroh_quic:setup to download a signed (Ed25519) prebuilt cdylib for your desktop platform (Linux/macOS/Windows on x64/arm64) into a per-user cache; Iroh.init() finds it automatically. Prefer source? cargo build --release still works and the loader picks that up too.
  • The loader now searches, in order: a local cargo build, the iroh_quic:setup cache, and a library bundled next to the compiled executable.
  • Release pipeline reworked: CI/release migrated from Flutter to dart/cargo; the prebuilt libraries are cross-compiled, signed, and attached to the version's GitHub Release. The former cargokit precompiled-binaries machinery (Flutter-only) was removed.

1.0.0 #

Initial release - a native Dart/Flutter binding for iroh 1.0, wrapping the iroh Rust core through an owned flutter_rust_bridge crate. Supports iOS, Android, macOS, Windows, and Linux.

  • Identity & addressing: SecretKey, PublicKey/EndpointId, Signature, EndpointAddr, RelayUrl, RelayMode/RelayMap (z-base-32, sign/verify, postcard round-trip).
  • Endpoint lifecycle: Endpoint.bind (hides presets::N0 + the rustls CryptoProvider), close, isClosed, setAlpns, boundSockets, addr. Async via an embedded multi-threaded tokio runtime.
  • Connections & streams: connect, open/accept bi/uni, datagrams, stats, closed; SendStream/RecvStream; byte-identical echo verified.
  • Accept loop + filter: accept, acceptIncoming -> Incoming (remoteAddr/accept/refuse/retry/ignore).
  • Reactive streams: watchAddr, homeRelayStatus, Connection.pathEvents (sealed PathEvent), with leak-free cancellation.
  • Multi-protocol: ALPN-based dispatch over the accept loop, plus a Router/ProtocolHandler bridge (Endpoint.router()) for in-process multiplexing with Dart async handlers.
  • Custom address lookup: Endpoint.bindWithAddressLookup - resolve a peer's address from its EndpointId in Dart.
  • Structured IrohException hierarchy; IrohCapabilities describing the supported feature set.
0
likes
140
points
0
downloads

Documentation

API reference

Publisher

verified publishersnowpine.io

Weekly Downloads

Pure-Dart binding for iroh 1.0 - peer-to-peer QUIC networking with endpoints, connections, streams, relays, and address lookup over the Rust core. No Flutter: load a signed prebuilt native library via `dart run iroh_quic:setup` (or build it with cargo), loaded over dart:ffi (flutter_rust_bridge runtime).

Repository (GitHub)
View/report issues

Topics

#iroh #p2p #networking #quic #ffi

License

Apache-2.0 (license)

Dependencies

cryptography, flutter_rust_bridge

More

Packages that depend on iroh_quic