mirror of
https://github.com/n0-computer/noq.git
synced 2026-09-24 20:25:00 +00:00
c38be740eb4183a11d3dbbbca0b86d48a1f72ebb
* fix(proto): Don't close paths from previous HP round we're still interested in * Use local/remote instead of src/dst in 4-tuple logs * Don't clear all path timers in `close_path`. * Also check for `!self.abandoned_paths.contains(&path_id)` * refactor(proto): Canonicalize IP addrs early for HP state * Spellcheck * Revert canonicalization to the right places again. We don't want to canonicalize when adding local addresses, since there might be NAT46 between us and the peer. We also don't want to canonicalize right when we receive ADD_ADDRESS frames, since that has an effect on maximum number of addresses calculations. * Preserve address mapping invariant in `iroh_hp::NatTraversalRound` * Update doc comments * Map ipv6-mapped IPv4 addresses to IPv4 if possible/necessary * Don't convert `::1` to `127.0.0.1` in `map_to_local_socket_family` Also: add a test case * Prefer `Ipv4Addr::to_ipv4_mapped`
tests: Add proptest arbitraries for various quinn-proto types and implement encoder roundtrip tests. (#325)
tests: Add proptest arbitraries for various quinn-proto types and implement encoder roundtrip tests. (#325)
Iroh Quinn
This is a fork based on quinn, maintained by n0. Currently published to crates.io under
iroh-quinn.
Main differences to upstream quinn
- Small API improvements
- Implements additional QUIC extensions
- Multipath
- QAD
- QNT
- Expanded support for QLOG
Quinn is a pure-rust, async-compatible implementation of the IETF [QUIC][quic] transport protocol.
- Simultaneous client/server operation
- Ordered and unordered stream reads for improved performance
- Works on stable Rust, tested on Linux, macOS and Windows
- Pluggable cryptography, with a standard implementation backed by [rustls][rustls] and [ring][ring]
- Application-layer datagrams for small, unreliable messages
- Future-based async API
- Minimum supported Rust version of 1.83.0
License
Copyright 2025 The quinn developers Copyright 2025 N0, INC.
This project is licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this project by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Description
Languages
Rust
99.3%
Python
0.5%
Shell
0.2%