feat: Add experimental http3 support #1353

Merged
Jade merged 1 commit from jade/http3 into main 2026-02-16 02:57:00 +00:00
Owner

Only enabled in Docker builds for now, due to build config required. Not
sure if more work is needed for 0RTT. Untested.

Only enabled in Docker builds for now, due to build config required. Not sure if more work is needed for 0RTT. Untested.
feat: Add experimental http3 support
All checks were successful
Documentation / Build and Deploy Documentation (pull_request) Successful in 1m53s
Checks / Prek / Pre-commit & Formatting (pull_request) Successful in 5m6s
Update flake hashes / update-flake-hashes (pull_request) Successful in 2m2s
Checks / Prek / Clippy and Cargo Tests (pull_request) Successful in 36m17s
57236d1854
Only enabled in Docker builds for now, due to build config required. Not
sure if more work is needed for 0RTT.
Owner

I mean, why? Even HTTP/2 is still barely used

I mean, why? Even HTTP/2 is still barely used
Author
Owner

This is for sending requests, a lot of servers have reverse proxies that support serving http2/3

This is for sending requests, a lot of servers have reverse proxies that support serving http2/3
Owner

I did one small local diff to add it as a default feature so regular cargo build would work. I got:

diff --git a/src/main/Cargo.toml b/src/main/Cargo.toml
index 0a02384af..e0ed104cb 100644
--- a/src/main/Cargo.toml
+++ b/src/main/Cargo.toml
@@ -62,6 +62,7 @@ standard = [
     "sentry_telemetry",
     "otlp_telemetry",
        "console",
+       "http3"
 ]
 full = [
     "standard",
   Compiling reqwest v0.12.28
error: The `http3` feature is unstable, and requires the `RUSTFLAGS='--cfg reqwest_unstable'` environment variable to be set.
   --> /home/aranjedeath/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/reqwest-0.12.28/src/lib.rs:251:1
    |
251 | / compile_error!(
252 | |     "\
253 | |     The `http3` feature is unstable, and requires the \
254 | |     `RUSTFLAGS='--cfg reqwest_unstable'` environment variable to be set.\
255 | | "
256 | | );
    | |_^

I did one small local diff to add it as a default feature so regular cargo build would work. I got: ``` diff --git a/src/main/Cargo.toml b/src/main/Cargo.toml index 0a02384af..e0ed104cb 100644 --- a/src/main/Cargo.toml +++ b/src/main/Cargo.toml @@ -62,6 +62,7 @@ standard = [ "sentry_telemetry", "otlp_telemetry", "console", + "http3" ] full = [ "standard", ``` ``` Compiling reqwest v0.12.28 error: The `http3` feature is unstable, and requires the `RUSTFLAGS='--cfg reqwest_unstable'` environment variable to be set. --> /home/aranjedeath/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/reqwest-0.12.28/src/lib.rs:251:1 | 251 | / compile_error!( 252 | | "\ 253 | | The `http3` feature is unstable, and requires the \ 254 | | `RUSTFLAGS='--cfg reqwest_unstable'` environment variable to be set.\ 255 | | " 256 | | ); | |_^ ```
Author
Owner

Yep, that's why it's not a default - it requires custom RUST FLAGS for now

Yep, that's why it's not a default - it requires custom RUST FLAGS for now
nex added this to the 0.5.5 milestone 2026-02-12 21:57:41 +00:00
nex modified the milestone from 0.5.5 to next 2026-02-14 19:46:04 +00:00
Author
Owner

Will merge this as soon as the release is made to test for some time before it gets pushed widely

Will merge this as soon as the release is made to test for some time before it gets pushed widely
Jade force-pushed jade/http3 from 57236d1854
All checks were successful
Documentation / Build and Deploy Documentation (pull_request) Successful in 1m53s
Checks / Prek / Pre-commit & Formatting (pull_request) Successful in 5m6s
Update flake hashes / update-flake-hashes (pull_request) Successful in 2m2s
Checks / Prek / Clippy and Cargo Tests (pull_request) Successful in 36m17s
to 81ac60625d
Some checks are pending
Documentation / Build and Deploy Documentation (pull_request) Waiting to run
Checks / Prek / Pre-commit & Formatting (pull_request) Waiting to run
Checks / Prek / Clippy and Cargo Tests (pull_request) Waiting to run
Update flake hashes / update-flake-hashes (pull_request) Waiting to run
2026-02-16 02:56:33 +00:00
Compare
Jade force-pushed jade/http3 from 81ac60625d
Some checks are pending
Documentation / Build and Deploy Documentation (pull_request) Waiting to run
Checks / Prek / Pre-commit & Formatting (pull_request) Waiting to run
Checks / Prek / Clippy and Cargo Tests (pull_request) Waiting to run
Update flake hashes / update-flake-hashes (pull_request) Waiting to run
to 40536b13da
Some checks failed
Release Docker Image / Create Max-Perf Manifest (push) Blocked by required conditions
Documentation / Build and Deploy Documentation (pull_request) Successful in 1m10s
Update flake hashes / update-flake-hashes (pull_request) Successful in 37s
Checks / Prek / Pre-commit & Formatting (pull_request) Successful in 2m52s
Documentation / Build and Deploy Documentation (push) Successful in 1m11s
Checks / Prek / Pre-commit & Formatting (push) Successful in 5m45s
Release Docker Image / Build linux-amd64 (release) (push) Successful in 16m49s
Release Docker Image / Build linux-arm64 (release) (push) Successful in 16m24s
Checks / Prek / Clippy and Cargo Tests (push) Has been cancelled
Checks / Prek / Clippy and Cargo Tests (pull_request) Has been cancelled
Release Docker Image / Build linux-arm64 (max-perf) (push) Failing after 11m49s
Release Docker Image / Build linux-amd64 (max-perf) (push) Failing after 12m10s
Release Docker Image / Create Multi-arch Release Manifest (push) Failing after 12m15s
2026-02-16 02:56:52 +00:00
Compare
Jade merged commit 40536b13da into main 2026-02-16 02:57:00 +00:00
Contributor

The compile error breaks the Nix flake the all-features flavor of the package :c

The compile error breaks the Nix flake the all-features flavor of the package :c
Author
Owner

That would have been broken before this with the mutually exclusive cbindgen features? Anyway, use the full feature

That would have been broken before this with the mutually exclusive cbindgen features? Anyway, use the `full` feature
Contributor

@Jade wrote in #1353 (comment):

That would have been broken before this with the mutually exclusive cbindgen features? Anyway, use the full feature

Wdym full feature?

@Jade wrote in https://forgejo.ellis.link/continuwuation/continuwuity/pulls/1353#issuecomment-24436: > That would have been broken before this with the mutually exclusive cbindgen features? Anyway, use the `full` feature Wdym full feature?
Owner

@nyanbinary wrote in #1353 (comment):

@Jade wrote in #1353 (comment):

That would have been broken before this with the mutually exclusive cbindgen features? Anyway, use the full feature

Wdym full feature?

are you trying to ship main in nix or the latest release? the latest release does not include this http3 feature

for features, that would be like cargo --features=full or similar.

@nyanbinary wrote in https://forgejo.ellis.link/continuwuation/continuwuity/pulls/1353#issuecomment-24437: > @Jade wrote in #1353 (comment): > > > That would have been broken before this with the mutually exclusive cbindgen features? Anyway, use the `full` feature > > Wdym full feature? are you trying to ship main in nix or the latest release? the latest release does not include this http3 feature for features, that would be like cargo --features=full or similar.
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
4 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
continuwuation/continuwuity!1353
No description provided.