ioxide.Kestrel
0.4.184
See the version list below for details.
dotnet add package ioxide.Kestrel --version 0.4.184
NuGet\Install-Package ioxide.Kestrel -Version 0.4.184
<PackageReference Include="ioxide.Kestrel" Version="0.4.184" />
<PackageVersion Include="ioxide.Kestrel" Version="0.4.184" />
<PackageReference Include="ioxide.Kestrel" />
paket add ioxide.Kestrel --version 0.4.184
#r "nuget: ioxide.Kestrel, 0.4.184"
#:package ioxide.Kestrel@0.4.184
#addin nuget:?package=ioxide.Kestrel&version=0.4.184
#tool nuget:?package=ioxide.Kestrel&version=0.4.184
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 | 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. |
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories (1)
Showing the top 1 popular GitHub repositories that depend on ioxide.Kestrel:
| Repository | Stars |
|---|---|
|
MDA2AV/HttpArena
The most complete HTTP open source benchmarking platform. Don't just say you're fast, prove it.
|
| Version | Downloads | Last Updated |
|---|---|---|
| 0.7.211 | 43 | 8/28/2026 |
| 0.7.210 | 92 | 8/20/2026 |
| 0.7.209 | 84 | 8/19/2026 |
| 0.6.208 | 83 | 8/19/2026 |
| 0.5.194 | 84 | 8/19/2026 |
| 0.5.193 | 92 | 8/17/2026 |
| 0.5.192 | 91 | 8/17/2026 |
| 0.4.187 | 94 | 8/14/2026 |
| 0.4.186 | 108 | 8/12/2026 |
| 0.4.184 | 97 | 8/12/2026 |
| 0.4.179 | 99 | 8/11/2026 |
| 0.4.178 | 88 | 8/10/2026 |
| 0.4.177 | 84 | 8/10/2026 |
| 0.4.176 | 89 | 8/10/2026 |
| 0.4.169 | 86 | 8/9/2026 |
| 0.4.168 | 89 | 8/9/2026 |
| 0.4.167 | 91 | 8/9/2026 |
| 0.4.165 | 92 | 8/9/2026 |
| 0.4.163 | 91 | 8/8/2026 |
| 0.4.162 | 86 | 8/8/2026 |