QuicHttpHandler.Interop
0.1.0
dotnet add package QuicHttpHandler.Interop --version 0.1.0
NuGet\Install-Package QuicHttpHandler.Interop -Version 0.1.0
<PackageReference Include="QuicHttpHandler.Interop" Version="0.1.0" />
<PackageVersion Include="QuicHttpHandler.Interop" Version="0.1.0" />
<PackageReference Include="QuicHttpHandler.Interop" />
paket add QuicHttpHandler.Interop --version 0.1.0
#r "nuget: QuicHttpHandler.Interop, 0.1.0"
#:package QuicHttpHandler.Interop@0.1.0
#addin nuget:?package=QuicHttpHandler.Interop&version=0.1.0
#tool nuget:?package=QuicHttpHandler.Interop&version=0.1.0
QuicHttpHandler
Provides HTTP/3 support for .NET Standard and Unity.
English | 日本語
Overview
QuicHttpHandler is a library that provides HTTP/3 support for .NET Standard and Unity.
Modern .NET supports HTTP/3 through an MsQuic-based implementation, but it is unavailable on older runtimes such as Unity. QuicHttpHandler provides HTTP/3 support by bringing a Rust implementation based on quiche into C# through FFI.
This library is currently in alpha and is not recommended for production use.
Installation
NuGet
dotnet package add QuicHttpHandler
Unity
The distribution method differs because the package includes native plug-ins.
You can install the Unity package through Package Manager.
- Open Package Manager from Window > Package Manager.
- Select the "+" button > Add package from git URL.
- Enter the following URL:
https://github.com/nuskey8/QuicHttpHandler.git?path=src/QuicHttpHandler.Unity/Packages/QuicHttpHandler.Unity
You must also add the following dependency DLLs to your project. NuGetForUnity is useful for installing them.
- System.Diagnostics.DiagnosticSource 10.0.0 or later
- System.IO.Pipelines 10.0.0 or later
Usage
using Nuskey.Net.Quic;
using var handler = new QuicHttpHandler();
using var client = new HttpClient(handler);
using var response = await client.GetAsync(
"https://cloudflare-quic.com/",
HttpCompletionOption.ResponseHeadersRead
);
var text = await response.Content.ReadAsStringAsync();
Console.WriteLine(text);
HTTP/1.1 and HTTP/2 fallback
QuicHttpHandler supports HTTP/3 only. To support HTTP/1.1 and HTTP/2 at the same time, use a DelegatingHandler to fall back to another implementation. The following is an example handler that combines QuicHttpHandler with UnityHttpMessageHandler.
using System.Net.Http;
using System.Threading;
using System.Threading.Tasks;
using Nuskey.Net.Quic;
using UnityEngine.Networking;
public sealed class ExampleHandler : DelegatingHandler
{
readonly HttpMessageInvoker http3;
public ExampleHandler()
: base(new UnityHttpMessageHandler())
{
http3 = new HttpMessageInvoker(
new QuicHttpHandler(),
disposeHandler: true
);
}
protected override Task<HttpResponseMessage> SendAsync(
HttpRequestMessage request,
CancellationToken cancellationToken
)
{
if (request.Version.Major >= 3)
return http3.SendAsync(request, cancellationToken);
return base.SendAsync(request, cancellationToken);
}
protected override void Dispose(bool disposing)
{
if (disposing)
http3.Dispose();
base.Dispose(disposing);
}
}
Configuration
TODO:
License
This library is available under the MIT License. Refer to the respective repositories for the licenses of quiche and other third-party components.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. net11.0 is compatible. |
| .NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.1 is compatible. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
- No dependencies.
-
net10.0
- No dependencies.
-
net11.0
- No dependencies.
NuGet packages (1)
Showing the top 1 NuGet packages that depend on QuicHttpHandler.Interop:
| Package | Downloads |
|---|---|
|
QuicHttpHandler
Provides HTTP/3 support for .NET Standard and Unity |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.0 | 122 | 9/18/2026 |