mirror of
https://github.com/n0-computer/noq.git
synced 2026-09-20 18:23:41 +00:00
4f8afee29ff86cd5f6c4fe5567ea182d5af6eef7
CryptoState (#420)
* add CryptoState and burte force its usage * add CryptoState::has_keys * add CryptoState::local_crypto and CryptoState::remote_crypto * use local_crypto and remote_crypto * local_crypto uses SpaceId instead to select zero rtt when needed * move update_keys to CryptoState * add more util fns and rename EncryptionLevel * rename to `EncryptionLevel` again * add some util fns * add space kind * use SpaceKind were it fits * use SpaceKind in connection too * packet header declares encryption level, not packet number space * move module functions to CryptoState methods * random improvements * fmt * fix for merge * key phase is also part of the connections crypto state * revert making the highest space a SpaceKind. Leave for later PR * revert taking SpaceKindn in Connection methods, leave for other PR * packet.space.header is SpaceId again * fmt * fixes after self review * address review
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%