-
Notifications
You must be signed in to change notification settings - Fork 4.9k
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
Abstracting QUIC #48685
Comments
Tagging subscribers to this area: @dotnet/ncl Issue DetailsSimilar to how This would allow for improved testing as well as providing the abstracts for #48617 to use. Something I've wanted to try for this is to have these classes be the actual abstraction, and move their implementation/construction behind a
|
I'm not sure we need an abstraction for I agree re |
Ultimately I want to have everything needed to support
There are some QUIC-specific APIs like waiting for stream shutdown ACK and aborting a stream with an error code.
Yeah. This bleeds into the connection abstraction stuff. At a minimum I'd like to have a thought experiment on how we could in the future insert some abstract
Yeah, we don't have a socket listener abstraction currently, so we can probably do without it. |
I think we've already solved this on our side. We introduced a multiplexed connection type in ASP.NET Core's transport abstractions. |
We had the idea that Kestrel and HttpClient should consolidate on a transport abstraction in System.Net.Connections and Microsoft.AspNetCore.Connections would disappear. #1793. We wanted to land the non-multiplexed version of this for .NET 5, but that didn't pan out. Sharing a transport Adding QUIC to the mix will only add to that, but at least there would be less legacy behavior to maintain. |
@halter73 if I understand correctly, nothing in Kestrel is depending directly on |
Correct. The QuicProvider is not used: https://github.com/dotnet/aspnetcore/search?q=QuicProvider |
If you want to see how ASP.NET Core is using QUIC types, the transport source is here: https://github.com/dotnet/aspnetcore/tree/main/src/Servers/Kestrel/Transport.Quic/src |
Punting to future, the reasoning is stated here: #64449. We don't plan to introduce abstractions for Quic classes in 7.0, but we're keeping our doors open to do it in the next release. |
Similar to how
Stream
abstracts aSocket
, we need some sort of abstraction forQuicStream
,QuicListener
, andQuicConnection
.This would allow for improved testing as well as providing the abstracts for #48617 to use.
Something I've wanted to try for this is to have these classes be the actual abstraction, and move their implementation/construction behind a
QuicConnection.ConnectAsync
andQuicConnection.CreateListener
.The text was updated successfully, but these errors were encountered: