ioxide.tls
0.2.3
dotnet add package ioxide.tls --version 0.2.3
NuGet\Install-Package ioxide.tls -Version 0.2.3
<PackageReference Include="ioxide.tls" Version="0.2.3" />
<PackageVersion Include="ioxide.tls" Version="0.2.3" />
<PackageReference Include="ioxide.tls" />
paket add ioxide.tls --version 0.2.3
#r "nuget: ioxide.tls, 0.2.3"
#:package ioxide.tls@0.2.3
#addin nuget:?package=ioxide.tls&version=0.2.3
#tool nuget:?package=ioxide.tls&version=0.2.3
A shared-nothing io_uring runtime for .NET.
One ring per reactor thread - run one per core. Each reactor owns its ring, its SO_REUSEPORT listener, its connections and its clients outright: nothing is shared, so nothing is locked. HTTP, Postgres, Redis and file I/O all submit on the owning ring and resume inline on the same thread. No thread pool on the hot path. No native dependencies - raw syscalls, nothing else.
Linux 6.1+ · .NET 10 · status
0.1.1- experimental
Documentation - architecture, guides, the full picture
First-class async/await
Shared-nothing runtimes usually ask you to give up the platform's async model. ioxide keeps it:
handlers are ordinary async Task code, and await works everywhere.
- Ring completions resume their continuations inline on the reactor thread - an awaited recv, query or file read picks up exactly where it left off, with no thread pool hop.
- A per-reactor
SynchronizationContextcatches everything that would otherwise escape: timers,HttpClient,Task.Runresults - their continuations post back to the owning reactor. - Ring operations await through reusable, allocation-free awaitables.
You always wake up on your reactor. That is what makes shared-nothing practical in .NET: connection, pool and handler state stays single-threaded without a lock in sight.
Packages
| Package | What it does |
|---|---|
ioxide |
The runtime: reactors, TCP/UDP transports, connections, the ring-native client seam. |
ioxide.pg |
Postgres driver. A pool per reactor; connect, query and stream rows on the owning ring. |
ioxide.redis |
Redis client. RESP2, pipelining, pub/sub - pooled per reactor. |
ioxide.file |
Static assets. Immutable snapshots, baked responses, positional ring reads. |
ioxide.tls |
TLS. OpenSSL handshake over the ring, then kTLS - handlers keep writing plaintext. |
ioxide.Kestrel |
ASP.NET Core transport: UseIoxide() and Kestrel runs one ring per core. |
Scope
ioxide hands you raw bytes and stays out of HTTP. Request parsing and response bytes are your
code; the runtime owns the ring, the connections and the clients. When you want a framework
on top, ioxide.Kestrel plugs the same engine under ASP.NET Core.
| 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 (4)
Showing the top 4 NuGet packages that depend on ioxide.tls:
| Package | Downloads |
|---|---|
|
ioxide.Kestrel
ASP.NET Core Kestrel transport backed by the ioxide io_uring runtime: one reactor (ring) per core, SO_REUSEPORT load-balanced, with Kestrel's HTTP request loop pinned to the reactor thread. Drop-in via UseIoxide(). |
|
|
SimpleW.Engine.Ioxide
ioxide network engine integration for SimpleW. |
|
|
Kestrel.Minima
ASP.NET Core Kestrel transport backed by the minima io_uring runtime: one reactor (ring) per core, SO_REUSEPORT load-balanced, with Kestrel's HTTP request loop pinned to the reactor thread. Drop-in via UseMinima(). |
|
|
GenHTTP.Engine.Ioxide
Package Description |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.2.3 | 94 | 7/24/2026 |
| 0.2.2 | 93 | 7/23/2026 |
| 0.2.1 | 96 | 7/23/2026 |
| 0.1.1 | 201 | 7/20/2026 |
| 0.0.17 | 454 | 6/23/2026 |
| 0.0.16 | 112 | 6/21/2026 |
| 0.0.15 | 116 | 6/21/2026 |
| 0.0.14 | 105 | 6/21/2026 |
| 0.0.13 | 112 | 6/21/2026 |
| 0.0.12 | 166 | 6/21/2026 |
| 0.0.11 | 143 | 6/20/2026 |
| 0.0.10 | 113 | 6/20/2026 |
| 0.0.9 | 121 | 6/20/2026 |
| 0.0.8 | 145 | 6/19/2026 |
| 0.0.7 | 203 | 6/17/2026 |
| 0.0.6 | 124 | 6/15/2026 |
| 0.0.5 | 131 | 6/13/2026 |
| 0.0.4 | 122 | 6/12/2026 |
| 0.0.3 | 119 | 6/12/2026 |
| 0.0.2 | 119 | 6/11/2026 |