Skip to content

Conversation

@gseddon
Copy link
Owner

@gseddon gseddon commented Apr 29, 2025

Uses the h3 library to implement HTTP3 support. Added to all paths - debug, 'standard' and 'fast'. Initial integration test support, however needs more tests to be fully fleshed out.

While H1 and H2 are supported by higher-level abstractions in Hyper, Hyper doesn't have those equivalents for H3 yet. So we must write them ourselves. We have implemented only as much as is necessary for load testing.

Much of the functionality is copied exactly from HTTP2, including the naming of all the functions in client_h3.rs. This should make it easier to review and understand - simply compare to the HTTP2 equivalent.

The main difference is that H3 returns a driver which must be continuously polled to drive the connection until we are finished with it.

HTTP3 also doesn't support unencrypted connections or HTTP1 proxies, so there's a good amount of functionality in Oha we don't have to extend for this H3 implementation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants