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

Experimental QUIC channel (.NET 9-only) #82

Merged
merged 2 commits into from
Nov 30, 2024
Merged

Conversation

yallie
Copy link
Collaborator

@yallie yallie commented Nov 30, 2024

Added sketch channel based on QUIC network protocol (requires .NET 9.0).
QUIC is a fast reliable UDP-based protocol developed by Google as a foundation for HTTP/3.
It includes built-in TLS 1.3 layer and solves a few TCP performance issues.

Docs: https://learn.microsoft.com/en-us/dotnet/fundamentals/networking/quic/quic-overview
Wikipedia article: https://en.wikipedia.org/wiki/QUIC

The project is not included in the solution, currently for testing only.
Doesn't support anything but localhost connections.
The speed is roughly the same as websockets based on HttpListener:

image

The unit tests are not included, but they are trivial to add, i.e.:

using CoreRemoting.Channels;
using CoreRemoting.Channels.Quic;
namespace CoreRemoting.Tests;

public class RpcTests_Quic : RpcTests
{
    protected override IServerChannel ServerChannel => new QuicServerChannel();

    protected override IClientChannel ClientChannel => new QuicClientChannel();

    public RpcTests_Quic(ServerFixture fixture, ITestOutputHelper helper) : base(fixture, helper)
    {
    }
}

@yallie yallie merged commit 967bdc1 into theRainbird:master Nov 30, 2024
1 check passed
@yallie yallie mentioned this pull request Nov 30, 2024
@theRainbird
Copy link
Owner

Very interesting. It can't hurt to look into future standards early on.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants