Commit Graph

98 Commits

Author SHA1 Message Date
Rüdiger Klaehn a0f988a91d refactor: Rename read_chunk to read_bytes and make it return just a Bytes (#535)
## Description

Remove Chunk usage in ordered read API

Make read_chunk return just a Bytes. Also rename read_chunks to
read_chunks_many (it already returns Bytes).

Add a bytes_read fn for the rare case where you do need the offset
despite being in ordered read mode.

Not sure if people agree, but there was an inconsistency before between
read_chunk (returns a Chunk, including offset) and read_chunks (fills a
bunch of Bytes, no offset).

Also it doesn't seem useful to have Chunk at all for ordered streams.
You usually don't care about the offset unless you are reading unordered
streams. So I would like to confine Chunk usage to only the (now
separate) unordered read API.

## Breaking Changes

noq::RecvStream::read_chunk returns a Bytes.
noq::RecvStream::read_chunks renamed to read_many_chunks.

## Notes & open questions

Note: while the [other related
PR](https://github.com/n0-computer/noq/pull/536) is just renaming, this
one is I think actually removing some weirdness.

Why does read_chunk give you an offset but read_chunks does not. And
there is no way to get the offset if you need it if you use read_chunks.

---------

Co-authored-by: Floris Bruynooghe <flub@n0.computer>
2026-05-07 08:52:03 +00:00
Rüdiger Klaehn 2156ac1c30 bench: Allow configuring the runtime type in the bulk bench (#280)
* Allow configuring the runtime type in the bulk bench

Also switch the default to the multithreaded runtime. I think that is more
representative of actual use.

* fmt

* clippy

---------

Co-authored-by: Floris Bruynooghe <flub@n0.computer>
2026-03-19 08:24:04 +00:00
dignifiedquire faeddf58ee chore: Release 2026-03-09 14:41:38 +01:00
Friedel Ziegelmayer 294e3ea603 refactor!: rename to noq (#461)
* refactor!: rename to noq

* fixup python scripts

* fixup

* fixup

* fixup: cr
2026-02-27 14:57:21 +00:00
Dirkjan Ochtman 6cb31438bb Hoist lint configuration to the workspace level 2026-01-12 16:46:28 +01:00
Rüdiger Klaehn 8dfdc04e13 feat: Introduce UnorderedRecvStream newtype (#257)
* Introduce UnorderedRecvStream newtype and remove unordered flag from recv_chunk

The only way to do unordered reads is now via the UnorderedRecvStream.

UnorderedRecvStream duplicates the API of RecvStream related to stream state

* Fix bench

* Update quinn/src/recv_stream.rs

Co-authored-by: Floris Bruynooghe <flub@n0.computer>

* Update quinn/src/recv_stream.rs

Co-authored-by: Floris Bruynooghe <flub@n0.computer>

* Add links to docs.

* Add doc comment to UnorderedRecvStream.

* Remove IllegalOrderedRead in quinn.

We do not remove ReadableError::IllegalOrderedRead in quinn-proto, since
using the current quinn-proto API you can still get it.

So we need to panic in the (single) place where we convert a ReadableError
to a ReadError.

* Move struct definition closer to impl

---------

Co-authored-by: Floris Bruynooghe <flub@n0.computer>
2025-12-15 15:52:45 +00:00
Friedel Ziegelmayer ea9dbb9fb0 feat: expose feature fast-apple-datapath (#204) 2025-12-02 13:13:06 +00:00
Diva M 1b79bec886 Merge commit '3194714f6fa1c78108b2a6353bd3e2af95ce1152' into multipath-quinn-0.11.x-b2b930a-merges 2025-09-30 09:58:30 -05:00
Damien Deville 7aa7c8d79d bench: fix clap help 2025-08-22 13:28:08 +00:00
Damien Deville ce94052e3b bench: refactor parse_byte_size 2025-08-22 13:28:08 +00:00
Floris Bruynooghe 143eb1b815 Merge branch 'main' into multipath-quinn-0.11.x 2025-08-02 17:14:02 +02:00
Dirkjan Ochtman 8339ef3ccc Upgrade rcgen to 0.14 2025-07-02 19:27:49 +00:00
Floris Bruynooghe deba4ee85f Merge branch 'main' into multipath-quinn-0.11.x 2025-04-10 12:36:01 +02:00
Dirkjan Ochtman a8807131e4 Switch to 2024 style 2025-02-23 11:52:46 +00:00
Floris Bruynooghe 4e95af240e Merge commit '2d06eef43fec927b0cf8f960bedb814bf3e4cc79' into iroh-0.11.x 2024-08-07 09:27:20 +02:00
Dirkjan Ochtman 3f489e2eab Use workspace dependencies for all external dependencies 2024-07-14 22:17:01 -07:00
Floris Bruynooghe f13a28921a Rename to iroh-quinn
This does the rename to iroh-quinn for the 0.11.2 release code.
2024-06-21 13:00:40 +02:00
Max Inden 9e2272a477 refactor: use workspace dependency for tracing and tracing-subscriber 2024-06-20 18:23:04 -07:00
Max Inden 8f3f8242c9 fix: remove unused dependency tracing-attributes
Various `quinn*` crates depend on `tracing`. `tracing` in its default feature
set includes `tracing-attributes` in order to expose `#[instrument]` procedural
macro in `tracing::instrument`.

None of `quinn*` make use of the `#[instrument]` macro. Thus the
`tracing-attributes` dependency is unused.

To remove the dependency from the tree, this commit restricts `tracing`'s
`features` to `std`, effectively removing the `attributes` feature.
2024-06-20 18:23:04 -07:00
Benjamin Saunders b42e21e74d Make SendStream::finish synchronous
`await`ing on this was error-prone and not very useful, since it gave
little insight into application state, and was redundant to `stopped`.
2024-05-03 11:52:44 -07:00
Dirkjan Ochtman 272dd5d45f quinn: add proper guards to Endpoint constructor helpers 2024-05-03 11:38:05 -07:00
Dirkjan Ochtman e6d48970af proto: validate ClientConfig crypto provider
Co-authored-by: gabrik <gabriele.baldoni@gmail.com>
2024-04-22 09:45:53 +02:00
Dirkjan Ochtman 3be1ab5ab2 Upgrade to rcgen 0.13 2024-04-22 09:45:53 +02:00
Dirkjan Ochtman a85a4c12ee Update rustls to 0.23 and ring to 0.17 2024-04-22 09:45:53 +02:00
dependabot[bot] d2e9c58044 Update rcgen requirement from 0.11.1 to 0.12.0
Updates the requirements on [rcgen](https://github.com/rustls/rcgen) to permit the latest version.
- [Commits](https://github.com/rustls/rcgen/compare/v0.11.1...v0.12.0)

---
updated-dependencies:
- dependency-name: rcgen
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-18 13:06:24 -08:00
Benjamin Saunders e1e1e6e392 Remove explicit rust-version requirement from unpublished crates 2023-09-24 14:22:14 -07:00
Benjamin Saunders e51f848296 Bump MSRV to 1.65 for let-else 2023-09-24 14:22:14 -07:00
Benjamin Saunders d51b630fcd Add client/server spans to bulk benchmark 2023-09-02 22:30:11 -07:00
Benjamin Saunders 7442da16f9 Enable ACK frequency extension in bulk benchmark 2023-09-02 22:30:11 -07:00
dependabot[bot] 790ff720a9 Update rcgen requirement from 0.10.0 to 0.11.1
Updates the requirements on [rcgen](https://github.com/est31/rcgen) to permit the latest version.
- [Changelog](https://github.com/est31/rcgen/blob/master/CHANGELOG.md)
- [Commits](https://github.com/est31/rcgen/compare/v0.10.0...v0.11.1)

---
updated-dependencies:
- dependency-name: rcgen
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-19 16:20:46 +02:00
Benjamin Saunders 044eab53ff Update clap 2023-05-11 14:10:19 +02:00
Dirkjan Ochtman 1dd88e6883 Update remaining crates to 2021 2023-05-11 04:47:59 +02:00
Benjamin Saunders 092a7686a4 Enable PMTUD by default when appropriate 2023-05-06 08:05:17 +02:00
Adolfo Ochagavía 030a0e8d72 Use mtu instead of max_udp_payload_size in names
Sponsored by Stormshield
2023-05-03 09:29:12 +02:00
Benjamin Saunders f79b31babf Bump MSRV to 1.63
More than six months old, and required by time 0.3.20.
2023-04-24 07:58:42 +02:00
Adolfo Ochagavía 2d48482180 Use PLPMTUD in bench, perf and examples
Sponsored by Stormshield
2023-04-04 17:40:20 -07:00
Daniel McCarney 5d1f7bccf2 deps: upgrade rustls v0.20.3 -> v0.21.0.
This commit updates Quinn's dependency on Rustls from v0.20.3 to
v0.21.0.

This release includes a handful of small breaking changes which are
resolved alongside the upgrade.
2023-04-01 12:18:23 -07:00
Dirkjan Ochtman cbe4b4604d Consistently set rust-version in Cargo metadata 2023-02-27 07:34:35 +01:00
Dirkjan Ochtman 3cc7efbe55 Apply remaining clippy suggestions from clippy 1.67 2023-02-27 07:34:35 +01:00
Dirkjan Ochtman f7354ef6ac Inline format arguments 2023-02-27 07:34:35 +01:00
Dirkjan Ochtman 2c6aa43610 Apply clippy suggestions from Rust 1.66 2022-12-19 10:13:01 -08:00
Benjamin Saunders 5c7f7aabfa Allow initial MTU to be specified in bulk benchmark 2022-11-27 21:23:24 -08:00
Benjamin Saunders 7d51d2e57e Remove Incoming stream in favor of Endpoint::accept 2022-10-23 08:18:42 +02:00
dependabot[bot] f86dd7596d Update rcgen requirement from 0.9.1 to 0.10.0
Updates the requirements on [rcgen](https://github.com/est31/rcgen) to permit the latest version.
- [Release notes](https://github.com/est31/rcgen/releases)
- [Changelog](https://github.com/est31/rcgen/blob/master/CHANGELOG.md)
- [Commits](https://github.com/est31/rcgen/compare/v0.9.1...v0.10.0)

---
updated-dependencies:
- dependency-name: rcgen
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-03 15:29:41 +02:00
Benjamin Saunders 6e4bcbb2fc Drop NewConnection in favor of simpler API 2022-09-27 11:08:26 +02:00
Benjamin Saunders fe93a68108 Replace structopt with its successor, clap 3 2022-07-03 21:02:33 +02:00
matszpk 1d7aa4311d Fixes on bench lib for 32-bit platforms. 2022-06-10 10:17:36 -07:00
Benjamin Saunders c1bd43f3a6 Satisfy clippy 2022-04-08 17:51:22 +02:00
Dirkjan Ochtman 838ad7c471 config: make ClientConfig fields private 2022-02-27 11:03:31 -08:00
Dirkjan Ochtman 5f394099ec Upgrade rcgen to 0.9.1 2022-02-11 13:48:07 -08:00