You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I want to discuss some approaches to HTTP3, specifically related to negotiating and timing.
As I see it there are three approaches for implementing HTTP3. Each with their own pros and cons
Start with HTTP over TCP and upgrade to QUIC over UDP via Alt-Svc header. The already negotiated key will be transferred over via PSK extension to share the pre negotiated key. This is the way most browsers implement HTTP3 and fits what your library is trying to accomplish. However, it will also leave more traces due to the double fingerprinting taking place (first HTTP2/1.1 and then HTTP3).
A happy eyeballs approach that starts HTTP3 and HTTP2/1.1 in parallel and go with what responds first. This will also cause double fingerprinting.
Start with HTTP3 and wait for a response. If no response fallback to HTTP2/1,1. This will imitate a browser that has cached the result of a Alt-Svc header with HTTP3 support beforehand.
Another (4:th) option is to delegate the strategy of negotiating to the users of the rnet library via configuration. For example a HTTP3 strategy parameter that the user can provide with options like: HTTP3 only, HTTP2 only, HTTP3 browser like, HTTP3 happy eyeballs, HTTP3 with fallback, etc..
However, this is not a problem. The problem is that rust's h3 is not perfect. And most of the APIs are low level, which is quite a big project to adapt. There is no doubt that this is a difficult task, and it is free of charge.
It is unlikely to achieve this goal in a short period of time, and before receiving any donations, there will not be much enthusiasm...
Reacted by Gun and UwU
Repository owner locked and limited conversation to collaborators on Aug 26, 2025
Activity
0x676e67 commentedon Mar 29, 2025
However, this is not a problem. The problem is that rust's h3 is not perfect. And most of the APIs are low level, which is quite a big project to adapt. There is no doubt that this is a difficult task, and it is free of charge.
It is unlikely to achieve this goal in a short period of time, and before receiving any donations, there will not be much enthusiasm...