Diva Martínez d6e525d412 fix!(proto): Deprecate UdpStats::ios as io-operations can't be measured from this crate (#725)
## Description

Closes #727 
Deprecates `ios` in `UdpStats`. It's a bit of a shame that `UdpStats` is
shared by so many places, path's sending stats, receiving stats,
connection-wide send and recv stats. There is no field that captures
something like this and makes sense across all of them, so adding it
would make for a structural change.

This field was clearly added to test gso batching: a connection-wide
sending stat. This is the only place where this is meaningful, so to be
able to continue testing this, a tet only field is added to the
connection stats.

## Breaking Changes

- Deprecates `UdpStats::ios` without replacement. See #727 If you do
need to count io operations, please do so by incorporating counting
operations in your `AsyncUdpSocket` implementation

## Notes & open questions

If anyone seriously cares about this, we should know thanks to the
deprecation warning, and would prompt us to add something that better
fits with the rest of the stats.

Whatever we do won't just be a undo of this PR as counting doesn't make
sense in the rest of places, and the name is misleading. Basically, the
deprecation warning should allow us to decide whether a larger change is
required to get the `gso_batches` (what the field actually tried to
measure, as noted by the tests) or if it can be cleanly removed. I'm
tempted to say the latter, as I don't think users care too much about
this.

Now, if they _do_ want a count of `io` operations, that's an entirely
different approach that requires interaction with the `AsyncUdpSocket`.

## Change checklist
<!-- Remove any that are not relevant. -->
- [x] Self-review.
- [x] Breaking changes documented.

<!--
tip:
Run `cargo make` in the workspace root to check many light-weight CI
steps locally.
-->
2026-06-30 17:11:26 +00:00
2026-02-06 10:04:56 +00:00
2026-06-29 11:41:09 +02:00
2026-06-29 11:41:09 +02:00
2026-06-29 11:41:09 +02:00
2025-03-24 15:57:34 +00:00
2026-06-11 09:52:50 +00:00
2026-06-29 11:41:09 +02:00
2026-03-09 14:40:18 +01:00
2020-01-27 10:21:10 -08:00
2026-03-09 14:45:33 +01:00
2025-02-23 11:52:46 +00:00

noq

Documentation Crates.io Chat License: MIT License: Apache 2.0

General purpose implementation of the QUIC transport protocol in pure Rust. Noq is built as an async-friendly API in the noq crate on top of a sans-io protocol library in noq-proto.

Noq started out as a fork of the excellent Quinn project. The main focus of development has been towards adding support for more QUIC (draft) extensions:

Features

  • Easy to use futures-based async API.
  • Client and server server functionality.
  • 0-RTT and 0.5-RTT data support.
  • Ordered and unordered stream reads.
  • Custom and zero-length connection identifiers.
  • Fully pluggable crypto API with a Rustls implementation using ring or aws-lc-rs provided by default for convenience.
  • Broad platform support, including Linux, Windows, macOS, android, iOS and wasm.

Standards

The noq library aims to be correct implementation of various QUIC standards:

Getting started

Examples at https://github.com/n0-computer/noq/blob/main/noq/examples

$ cargo run --example server ./
$ cargo run --example client https://localhost:4433/Cargo.toml

This launches an HTTP 0.9 server over the QUIC transport on the loopback address serving the current working directory, with the client fetching ./Cargo.toml. By default, the server generates a self-signed certificate and stores it to disk, where the client will automatically find and trust it.

License

Copyright 2025 The quinn developers Copyright 2025 N0, INC.

This project is licensed under either of

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.

S
Description
noq, a QUIC implementation in Rust
Readme 120 MiB
Languages
Rust 99.3%
Python 0.5%
Shell 0.2%