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
Friedel Ziegelmayer
fd36bc5bf5
refactor!: cleanup single path based expectations ( #616 )
...
## Description
- Removes the two API calls on `Connection` that haven't been migrated
yet
- Adds some more explicit `expect`s for unnamed `unwrap`s
Closes #514
## Breaking Changes
- remove
- `noq::Connection::local_ip`
- `noq::Connection::remote_address`
2026-04-29 07:13:03 +00:00
Friedel Ziegelmayer
0ac6b4620b
feat(proto): replace BBR with BBRv3 + breaking Controller API changes ( #611 )
...
Pulls in upstream quinn PR https://github.com/quinn-rs/quinn/pull/2481
Squashes the upstream commits and adapts them.
Closes #603
Upstream commits
- f8b25b24b - granular packet events for congestion controllers
- 52f04ed9b - Pacer queries Controller for pacing rate / send quantum
- c022e308a - BBRv3 implementation + MaxFilter
- ce60e5b5c - remove old BBR implementation
## Breaking Changes
- `Controller` trait:
- `on_ack` gains `pn: u64`
- `on_congestion_event` gains `largest_lost: u64`
- New optional `on_packet_sent`, `on_packet_lost`,
`on_ack_frequency_update`
- New `metrics()` -> `ControllerMetrics { congestion_window, ssthresh,
pacing_rate, send_quantum }`, used by the pacer
- Pacer changes:
- `Pacer::delay()` now also takes `capacity: Option<u64>` and
`pacing_rate: Option<u64>` from the controller; CC-supplied values take
precedence over the window-derived defaults but are still capped by
noq's `max_bytes_per_second`.
---------
Co-authored-by: Tipuch <fiorini751@proton.me >
2026-04-24 09:18:46 +00:00
dignifiedquire
79b20f4453
fix: gate perf Path import on json-output + restore deny.toml entries
2026-04-22 15:15:19 +02:00
Zotyamester
72400f34da
fix(perf): suppress table output in JSON mode
...
Suppress table output meant to provide human-friendly visualization
when using the `--json` CLI option and its argument is `-`, that is,
when the JSON output targets stdout.
Fixes #2544 .
(cherry picked from commit f853e5e082 )
2026-04-22 15:15:19 +02:00
Philipp Krüger
98507bd045
refactor(proto)!: Remove excessive Arc-wrapping ( #489 )
2026-03-10 10:51:21 +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
Franz Heinzmann
abbe27bf07
feat!: update qlog to latest drafts, add more events and QUIC extensions, emit traces per connection ( #208 )
...
* refactor: upgrade to latest n0-qlog
* feat: record path id
* feat: add qlog support for multipath frames
* support more frames and error codes
* feat: add support for quic-address-discovery and quic-ack-frequency extensions
* feat: support iroh's NAT traversal extension
* feat: emit TupleAssigned for new paths
* fixup
* chore: update to latest n0-qlog
* feat: emit TransportParameters
* chore: clippy
* deps: update to n0-qlog 0.1.0
* refactor: add qlog factory, move group_id to common_fields
* docs: improve
* chore: clippy
* fixup
* feat: add QlogFileFactory and util methods on TransportConfig
* feat: reexport from quinn
* chore: clippy
* feat: qlog timers
* add more timers
* docs: improve
* refactor: disable keep alive timers in qlog to reduce noise
* address review
* fix: downgrade logging
* cleanup
* fixup naming
---------
Co-authored-by: Friedel Ziegelmayer <me@dignifiedquire.com >
2025-12-06 10:07:30 +00:00
dignifiedquire
c8a655c4b4
Merge remote-tracking branch 'upstream/main' into chore-merge-upstream
2025-12-01 14:08:32 +01:00
dependabot[bot]
425b8b45f6
build(deps): bump console-subscriber from 0.4.1 to 0.5.0
...
Bumps [console-subscriber](https://github.com/tokio-rs/console ) from 0.4.1 to 0.5.0.
- [Release notes](https://github.com/tokio-rs/console/releases )
- [Changelog](https://github.com/tokio-rs/console/blob/main/release-plz.toml )
- [Commits](https://github.com/tokio-rs/console/compare/console-subscriber-v0.4.1...console-subscriber-v0.5.0 )
---
updated-dependencies:
- dependency-name: console-subscriber
dependency-version: 0.5.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-11-11 09:16:51 +00:00
Diva M
1b79bec886
Merge commit '3194714f6fa1c78108b2a6353bd3e2af95ce1152' into multipath-quinn-0.11.x-b2b930a-merges
2025-09-30 09:58:30 -05:00
Phoenix Kahlo
1350132407
refactor: Pass ConnectionId by value
...
Breaking.
2025-09-06 20:08:59 +00:00
Dirkjan Ochtman
80b8ffdb4b
Use newer rustls-pki-types PEM parser API
2025-09-02 17:46:40 +00:00
Dirkjan Ochtman
e4f0550b29
perf: move main() above Cli
2025-08-31 17:48:31 +00:00
Damien Deville
a9d4377db2
perf: add a feature to enable profiling with tokio-console
2025-08-28 08:15:31 +00:00
Damien Deville
3194714f6f
perf: rename perf binary to quinn-perf to prevent name clash with linux perf
2025-08-26 20:21:41 +00:00
Dreamacro
f5632ce2ee
perf: move client and server on one binary
2025-08-26 05:36:31 +00:00
Dreamacro
c7bdfa2b8f
perf: add max udp payload size option
2025-08-25 02:36:16 +00:00
Damien Deville
8ba63e4d71
perf: allow setting send / receive connection or stream windows
2025-08-22 13:28:08 +00:00
Damien Deville
325b4e0e42
perf: support SI units for the various size parameters
2025-08-22 13:28:08 +00:00
Damien Deville
7d59865ffe
perf: factorize init of tracing
2025-08-20 10:51:43 +00:00
Damien Deville
7825e9d39e
perf: used buffered writer for qlog stream
2025-08-20 10:51:43 +00:00
Damien Deville
0c8b65fd42
perf: factorize socket binding
2025-08-20 10:51:43 +00:00
Damien Deville
c5da14658a
perf: factorize common options
2025-08-20 10:51:43 +00:00
Floris Bruynooghe
143eb1b815
Merge branch 'main' into multipath-quinn-0.11.x
2025-08-02 17:14:02 +02:00
Benjamin Saunders
1c6aecc683
Stabilize qlog feature
2025-07-22 00:53:03 +00:00
Benjamin Saunders
25b5dcd569
Configure qlog in TransportConfig
2025-07-22 00:53:03 +00:00
Fabien Savy
56b68df635
add qlog option to perf
2025-07-04 07:57:47 +00:00
Dirkjan Ochtman
8339ef3ccc
Upgrade rcgen to 0.14
2025-07-02 19:27:49 +00:00
Damien Deville
62bc881b9a
perf: leave async tasks early
2025-06-30 08:12:54 +00:00
Damien Deville
a8eba3ada6
perf: allow selecting congestion algorithm
2025-06-30 08:12:54 +00:00
Damien Deville
1678ada26d
perf: allow configuring ack frequency
2025-06-30 08:12:54 +00:00
Damien Deville
abd1be051b
perf: allow setting initial round trip time
2025-06-30 08:12:54 +00:00
Floris Bruynooghe
deba4ee85f
Merge branch 'main' into multipath-quinn-0.11.x
2025-04-10 12:36:01 +02:00
Lars Eggert
83b48b5b87
feat: Allow changing the UDP send/receive buffer sizes
...
Also includes getters for the current sizes and a test.
Bump version to 0.5.11.
2025-03-25 08:20:27 +00:00
Dirkjan Ochtman
a8807131e4
Switch to 2024 style
2025-02-23 11:52:46 +00:00
Divma
c04b6a9fbb
take advantage of the fact that packet protection with and without multipath is equivalent for Path(0) ( #39 )
2025-01-27 11:56:27 -05:00
Divma
af1b428d4e
include path_id in packet protection ( #36 )
2025-01-24 11:29:06 -05:00
Carl Dong
cc1cf6ff96
Add comments w/re keeping features in sync
2025-01-18 20:56:41 +00:00
Diva M
a935ad4df0
Merge commit '6ee883a2' into iroh-0.11.x
2025-01-14 23:05:01 -05:00
Dirkjan Ochtman
43b74b658b
proto: replace hidden field with From impl
2024-12-20 19:34:28 +00:00
Lars Eggert
f8b8c5032e
chore: Fix cargo clippy issues
2024-11-18 23:31:18 +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