I searched for an issue to track progress of implementing HTTP/3 in the standard library but couldn't find one, so I'm opening this new issue to track this (presumably inevitable) effort.
@Irhn
given that
What are the plans for Dart's implementation?
Will it be a separate package like http2 or grpc?
Any timeline for a release?
There are currently no plans (or bandwidth) to implement HTTP/3 support as either builtin dart:io feature or even as a package.
@lrhn do you think we should maybe close this as not planned to reflect the current thinking around dart:io and networking package priorities?
/cc @mit-mit @a-siva
Not sure closing is the right thing to do. When HTTP/3 becomes a stable standard, we will most likely have to implement it.
We are just not going to be riding the bleeding edge and implement the draft specification.
It's unlikely that there will be any clients or back-ends which will be HTTP/3 only, so falling back on HTTP/2 is a valid option.
So, keeping this open as a place where people needing the feature can weigh in, but with no near-time plans to do an implementation in Dart.
It's a non-trivial piece of networking code, especially for the server code, so we'll have to ensure we have someone qualified to implement it when the time comes. At that time, we can figure out whether we want it in a separate package or not.
What about the quic protocol in general, apart from HTTP/3?
There have already had https://tools.ietf.org/html/draft-ietf-quic-transport-32. It's a really nice package that the Dart SDK should have.
Most helpful comment
Not sure closing is the right thing to do. When HTTP/3 becomes a stable standard, we will most likely have to implement it.
We are just not going to be riding the bleeding edge and implement the draft specification.
It's unlikely that there will be any clients or back-ends which will be HTTP/3 only, so falling back on HTTP/2 is a valid option.
So, keeping this open as a place where people needing the feature can weigh in, but with no near-time plans to do an implementation in Dart.
It's a non-trivial piece of networking code, especially for the server code, so we'll have to ensure we have someone qualified to implement it when the time comes. At that time, we can figure out whether we want it in a separate package or not.