-
Notifications
You must be signed in to change notification settings - Fork 39
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support HTTP/2 and HTTP/3 transport #1994
Comments
Whereas I highly appreciate use of QUIC, I actually doubt this might be soon used in the matrix ecosystem. At least about HTTP/2 : https://pub.dev/packages/http2 provides a Dart native HTTP/2 client implementation. One could easily adjust the Client constructor to use an HTTP/2 client implementation as drop-in replacement for the general purpose HTTP client. Please note that the Dart HTTP/2 client is obviously not supported on web since the HTTP requests are there dispatched by the browser. |
HTTP/2 and HTTP/3 are supported in browser Dart by FetchClient according to the http package defaults I linked above |
I do not consider this as relevant SDK feature. The SDK uses a Even if ommitted, the I do not see any need for Famedly to adjust their interface, one could maybe just consider adding some documentation about how the |
I agree here @TheOneWithTheBraid by offering the httpClient parameter, we let the consumer decide which client to use. We could write some tutorials how to use it though |
Preflight Checklist
Describe your problem
The SDK uses the
http
dart package, which according to its README uses IOClient on non-browser targets. This implementation only support HTTP/1.1.HTTP/2 was ratified in 2015 and HTTP/3 in 2022 and widely used in the modern web. Both protocols provide real-world improvements to web and app use, especially on mobile wireless connections.
Describe your ideal solution
in
lib/src/client.dart
initializes a client if none exists which will use thehttp
package's defaults and in particular IOClient on native platforms. Instead it would make more sense to change this to use a different package when a better implementation is available on the target platform. For example:Only when neither option is available, there should be a fall back to the defaults.
As a user this would be great as it transparently improves performance for all users of the SDK.
Version
No response
Security requirements
No response
Additional Context
No response
The text was updated successfully, but these errors were encountered: