ioxide.Kestrel
0.0.15
See the version list below for details.
dotnet add package ioxide.Kestrel --version 0.0.15
NuGet\Install-Package ioxide.Kestrel -Version 0.0.15
<PackageReference Include="ioxide.Kestrel" Version="0.0.15" />
<PackageVersion Include="ioxide.Kestrel" Version="0.0.15" />
<PackageReference Include="ioxide.Kestrel" />
paket add ioxide.Kestrel --version 0.0.15
#r "nuget: ioxide.Kestrel, 0.0.15"
#:package ioxide.Kestrel@0.0.15
#addin nuget:?package=ioxide.Kestrel&version=0.0.15
#tool nuget:?package=ioxide.Kestrel&version=0.0.15
ioxide.Kestrel
An ASP.NET Core Kestrel transport backed by the ioxide io_uring runtime. One reactor (io_uring ring) per core, SO_REUSEPORT load-balanced, with Kestrel's entire request loop pinned to the reactor thread — no ThreadPool hop on the hot path.
Usage
var builder = WebApplication.CreateBuilder(args);
builder.WebHost.UseIoxide(); // replaces Kestrel's default sockets transport
var app = builder.Build();
app.MapGet("/", () => "Hello, World!");
app.Run();
Options:
builder.WebHost.UseIoxide(o =>
{
o.ReactorCount = Environment.ProcessorCount; // rings/threads (default: ProcessorCount)
o.ConfigureServer = cfg => cfg with { RingEntries = 8192 }; // tune the underlying ioxide ServerConfig
});
How it works
Each accepted connection is bridged to Kestrel through a System.IO.Pipelines duplex whose reader
schedulers route continuations onto the owning reactor thread. A recv pump copies received bytes into
the inbound pipe and a send pump drains Kestrel's response into the connection's send slab, so
recv → HTTP parse → handler → send all run on a single ring thread.
Requirements
- Linux with io_uring (kernel 6.x recommended).
- .NET 11.
Inline execution note: like any thread-per-core transport, application middleware runs on the reactor thread. Blocking work in a handler stalls every connection on that reactor — keep handlers async.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net11.0 is compatible. |
-
net11.0
- ioxide (>= 0.0.15)
- ioxide.tls (>= 0.0.15)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.4.178 | 0 | 8/10/2026 |
| 0.4.177 | 7 | 8/10/2026 |
| 0.4.176 | 31 | 8/10/2026 |
| 0.4.169 | 39 | 8/9/2026 |
| 0.4.168 | 38 | 8/9/2026 |
| 0.4.167 | 39 | 8/9/2026 |
| 0.4.165 | 40 | 8/9/2026 |
| 0.4.163 | 43 | 8/8/2026 |
| 0.4.162 | 39 | 8/8/2026 |
| 0.4.161 | 43 | 8/8/2026 |
| 0.4.156 | 46 | 8/8/2026 |
| 0.4.153 | 40 | 8/7/2026 |
| 0.4.152 | 48 | 8/7/2026 |
| 0.3.149 | 41 | 8/7/2026 |
| 0.3.145 | 75 | 8/5/2026 |
| 0.3.100 | 82 | 8/5/2026 |
| 0.2.6 | 88 | 8/4/2026 |
| 0.2.5 | 82 | 8/4/2026 |
| 0.2.4 | 101 | 8/3/2026 |
| 0.0.15 | 113 | 6/21/2026 |