Skip to content
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

[Epic] HTTP/3 support in ASP.NET Core #15271

Closed
3 of 5 tasks
Tracked by #27883
analogrelay opened this issue Oct 22, 2019 · 13 comments
Closed
3 of 5 tasks
Tracked by #27883

[Epic] HTTP/3 support in ASP.NET Core #15271

analogrelay opened this issue Oct 22, 2019 · 13 comments
Labels
affected-most This issue impacts most of the customers area-networking Includes servers, yarp, json patch, bedrock, websockets, http client factory, and http abstractions enhancement This issue represents an ask for new feature or an enhancement to an existing one Epic Groups multiple user stories. Can be grouped under a theme. HTTP3 severity-nice-to-have This label is used by an internal tool Theme: meeting developer expectations
Milestone

Comments

@analogrelay
Copy link
Contributor

analogrelay commented Oct 22, 2019

This is a high-level tracking work item for HTTP/3 and QUIC support in ASP.NET Core. We'll add items to this as we go.

NOTE: We have no concrete plans on when we are shipping this experience yet.

(Rough) Child Items:

NOTE: Public APIs for QUIC are out-of-scope for this initial release in 5.0. They're still very much on our radar, but the spec is in flux and we want to focus on an end-to-end scenario that works.

@jkotalik @shirhatti @captainsafia @wtgodbe

@aL3891
Copy link

aL3891 commented Oct 23, 2019

This is really really cool!
Please also consider adding httpclient (or client support in general) to the prototype work, i think a really great use case for this is inter service communication in a micro service solution (as in not using a browser).

That's something i'd like to do at least :)

@Tratcher
Copy link
Member

@aL3891 yes we're working with the client networking folks on these prototypes.

@analogrelay analogrelay added this to the 5.0.0 milestone Oct 23, 2019
@analogrelay
Copy link
Contributor Author

Putting this in 5.0.0 to represent the fact that we are doing work now, and that work definitely won't land in 3.1. Doesn't mean we're committing to anything real in 5.0 yet ;).

@tmds
Copy link
Member

tmds commented Jan 27, 2020

@anurse I wonder how this will work .NET Core that is completely build from source. What will provide the quic implementation? Will "msquic" be open-sourced? Or something else?

cc @crummel @dagood

@tmds
Copy link
Member

tmds commented Jan 27, 2020

cc @omajid

@Armarr
Copy link

Armarr commented Jan 27, 2020

@tmds If the final impementation ends up being anything like the prototype it'll use native interop. https://github.com/dotnet/aspnetcore/tree/master/src/Servers/Kestrel/Transport.MsQuic

@scalablecory
Copy link
Contributor

@tmds still figuring out the details. The work being done should still be considered a prototype; msquic is just what we're using now but that may change.

@tmds
Copy link
Member

tmds commented Jan 27, 2020

@tmds still figuring out the details. The work being done should still be considered a prototype; msquic is just what we're using now but that may change.

If possible, try to support a provider which is already available in popular distros. That makes it easier because .NET Core packages can use that as a dependency. And these packages may meet some required security qualification.

@anurse could you add an open child item to this issue for supporting an open-source quic provider?

@analogrelay
Copy link
Contributor Author

That should go in dotnet/runtime. We'll be building a native HTTP/3 stack on top of some kind of QUIC implementation in dotnet/runtime. The MsQuic interop layer we built was just to enable our work on HTTP/3. It also went on to be the very first prototype version of System.Net.Quic, but it's part of dotnet/runtime now and so not directly in-scope here.

For ASP.NET Core it'll definitely be possible to provide an alternate transport (much like the existing linux-native transport: https://github.com/redhat-developer/kestrel-linux-transport) using any library you want and get the full fidelity of Kestrel's HTTP/3 implementation on top of it.

@tmds We'd definitely be very interested in your thoughts here though. I'm not aware of any QUIC provider in a distro today, but I may be wrong. It would be great if you could file something in dotnet/runtime with your suggestions so we have them captured.

@tmds
Copy link
Member

tmds commented Jan 29, 2020

Create dotnet/runtime#2333 for open-source QUIC provider support.

@jkotalik
Copy link
Contributor

jkotalik commented Oct 2, 2020

Moving this to 6.0; we have experimental support for HTTP/3 in .NET 5, but this will finished in 6.

@jkotalik jkotalik modified the milestones: 5.0.0, 6.0.0-alpha1 Oct 2, 2020
@jkotalik jkotalik added affected-most This issue impacts most of the customers enhancement This issue represents an ask for new feature or an enhancement to an existing one severity-nice-to-have This label is used by an internal tool labels Oct 9, 2020 — with ASP.NET Core Issue Ranking
@ghost
Copy link

ghost commented Nov 2, 2020

Thanks for contacting us.
We're moving this issue to the Next sprint planning milestone for future evaluation / consideration. We will evaluate the request when we are planning the work for the next milestone. To learn more about what to expect next and how this issue will be handled you can read more about our triage process here.

@adityamandaleeka
Copy link
Member

Closing this epic. HTTP/3 support is going to be available as a preview feature in .NET 6!

@ghost ghost locked as resolved and limited conversation to collaborators Nov 3, 2021
@amcasey amcasey added area-networking Includes servers, yarp, json patch, bedrock, websockets, http client factory, and http abstractions and removed area-runtime labels Jun 2, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
affected-most This issue impacts most of the customers area-networking Includes servers, yarp, json patch, bedrock, websockets, http client factory, and http abstractions enhancement This issue represents an ask for new feature or an enhancement to an existing one Epic Groups multiple user stories. Can be grouped under a theme. HTTP3 severity-nice-to-have This label is used by an internal tool Theme: meeting developer expectations
Projects
None yet
Development

No branches or pull requests