ioxide.pg 0.2.1

There is a newer version of this package available.
See the version list below for details.
dotnet add package ioxide.pg --version 0.2.1
                    
NuGet\Install-Package ioxide.pg -Version 0.2.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="ioxide.pg" Version="0.2.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="ioxide.pg" Version="0.2.1" />
                    
Directory.Packages.props
<PackageReference Include="ioxide.pg" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add ioxide.pg --version 0.2.1
                    
#r "nuget: ioxide.pg, 0.2.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package ioxide.pg@0.2.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=ioxide.pg&version=0.2.1
                    
Install as a Cake Addin
#tool nuget:?package=ioxide.pg&version=0.2.1
                    
Install as a Cake Tool

ioxide ioxide.pg ioxide.file ioxide.tls ioxide.redis ioxide.Kestrel

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 SynchronizationContext catches everything that would otherwise escape: timers, HttpClient, Task.Run results - 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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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.2.3 4 7/24/2026
0.2.2 37 7/23/2026
0.2.1 35 7/23/2026
0.1.1 124 7/20/2026
0.0.17 379 6/23/2026
0.0.16 106 6/21/2026
0.0.15 104 6/21/2026
0.0.14 104 6/21/2026
0.0.13 105 6/21/2026
0.0.12 157 6/21/2026
0.0.11 136 6/20/2026
0.0.10 107 6/20/2026
0.0.9 112 6/20/2026
0.0.8 137 6/19/2026
0.0.7 204 6/17/2026
0.0.6 110 6/15/2026
0.0.5 124 6/13/2026
0.0.4 117 6/12/2026
0.0.3 115 6/12/2026
0.0.2 108 6/11/2026
Loading failed