NetConduit 2.3.3

This package has a SemVer 2.0.0 package version: 2.3.3+build.20260508103848.0532658.
There is a newer version of this package available.
See the version list below for details.
dotnet add package NetConduit --version 2.3.3
                    
NuGet\Install-Package NetConduit -Version 2.3.3
                    
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="NetConduit" Version="2.3.3" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="NetConduit" Version="2.3.3" />
                    
Directory.Packages.props
<PackageReference Include="NetConduit" />
                    
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 NetConduit --version 2.3.3
                    
#r "nuget: NetConduit, 2.3.3"
                    
#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 NetConduit@2.3.3
                    
#: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=NetConduit&version=2.3.3
                    
Install as a Cake Addin
#tool nuget:?package=NetConduit&version=2.3.3
                    
Install as a Cake Tool

NetConduit

NuGet License: MIT

Transport-agnostic stream multiplexer for .NET — Multiple virtual channels over a single bidirectional stream.

N streams → 1 stream (mux) → N streams (demux)

Features

  • Multiple channels — Many logical streams over one connection
  • Credit-based backpressure — Flow control prevents overwhelming receivers
  • Priority queuing — Higher priority frames sent first
  • Auto-reconnection — Channel state restored after disconnect
  • Native AOT — No reflection in core library
  • Zero dependencies — Only BCL types
  • Modern .NET — Targets .NET 8, 9, and 10

Quick Start

dotnet add package NetConduit
dotnet add package NetConduit.Tcp
using NetConduit;
using NetConduit.Tcp;
using NetConduit.Transits;
using System.Text.Json.Serialization;

public record ChatMessage(string User, string Text);

[JsonSerializable(typeof(ChatMessage))]
public partial class ChatContext : JsonSerializerContext { }

// Server
var listener = new TcpListener(IPAddress.Any, 5000);
listener.Start();
await using var server = StreamMultiplexer.Create(TcpMultiplexer.CreateServerOptions(listener));
server.Start();
await server.WaitForReadyAsync();

await using var transit = await server.AcceptMessageTransitAsync("chat", ChatContext.Default.ChatMessage);
await foreach (var msg in transit.ReceiveAllAsync())
    Console.WriteLine($"[{msg.User}] {msg.Text}");

// Client
await using var client = StreamMultiplexer.Create(TcpMultiplexer.CreateOptions("localhost", 5000));
client.Start();
await client.WaitForReadyAsync();

await using var transit = await client.OpenMessageTransitAsync("chat", ChatContext.Default.ChatMessage);
await transit.SendAsync(new ChatMessage("Alice", "Hello!"));

Packages

Package Description
NetConduit Core multiplexer + transits
NetConduit.Tcp TCP transport
NetConduit.WebSocket WebSocket transport
NetConduit.Udp UDP with reliability layer
NetConduit.Ipc IPC (loopback/Unix sockets)
NetConduit.Quic QUIC transport

Architecture

┌──────────────────────────────────────────────────────────────────────────────┐
│  Application                                                                 │
├──────────────────────────────────────────────────────────────────────────────┤
│  Transit Layer (Optional)                                                    │
│  ┌──────────────┐  ┌──────────────┐  ┌───────────────────┐  ┌─────────────┐  │
│  │MessageTransit│  │ DeltaTransit │  │DuplexStreamTransit│  │StreamTransit│  │
│  └──────────────┘  └──────────────┘  └───────────────────┘  └─────────────┘  │
├──────────────────────────────────────────────────────────────────────────────┤
│  NetConduit Core                                                             │
│  - Frame encoding/decoding                                                   │
│  - Channel management                                                        │
│  - Credit-based backpressure                                                 │
│  - Priority queuing                                                          │
│  - Auto-reconnection                                                         │
├──────────────────────────────────────────────────────────────────────────────┤
│  Transport Layer (Pluggable)                                                 │
│  ┌─────┐  ┌─────────┐  ┌─────┐  ┌─────┐  ┌──────┐                            │
│  │ TCP │  │WebSocket│  │ UDP │  │ IPC │  │ QUIC │                            │
│  └─────┘  └─────────┘  └─────┘  └─────┘  └──────┘                            │
└──────────────────────────────────────────────────────────────────────────────┘

Samples

Sample Description
GroupChat Multi-user chat (TCP + WebSocket)
FileTransfer Parallel file transfers with progress
Pong Multiplayer game with delta state sync
RemoteShell SSH-like remote command execution
RpcFramework Type-safe JSON-RPC pattern
TcpTunnel Port forwarding like ngrok
Scoreboard Live leaderboard with reconnection
dotnet run --project samples/NetConduit.Samples.GroupChat -- server tcp 5000
dotnet run --project samples/NetConduit.Samples.GroupChat -- client tcp 5000 127.0.0.1 Alice

Documentation

Full documentation at docs/:

Building

dotnet build
dotnet test

License

See LICENSE.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  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 is compatible.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net10.0

    • No dependencies.
  • net8.0

    • No dependencies.
  • net9.0

    • No dependencies.

NuGet packages (9)

Showing the top 5 NuGet packages that depend on NetConduit:

Package Downloads
NetConduit.Transit.DeltaMessage

Delta message transit for NetConduit. Synchronizes state by sending only changed fields after an initial full sync, minimizing bandwidth.

NetConduit.Transit.DuplexStream

Duplex stream transit for NetConduit. Wraps a write/read channel pair as a bidirectional System.IO.Stream.

NetConduit.Transport.Ipc

Local IPC transport helper for NetConduit (named pipes on Windows, Unix domain sockets elsewhere).

NetConduit.Transit.Message

Message transit for NetConduit. Sends and receives discrete JSON-serialized messages over a channel pair with length-prefixed framing.

NetConduit.Transport.Quic

QUIC transport helper for NetConduit stream multiplexer (System.Net.Quic).

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
3.0.1 0 5/14/2026
2.3.3 365 5/8/2026
2.3.2 115 5/7/2026
2.3.1 23 5/6/2026
2.2.3 152 5/6/2026
2.2.1 89 5/5/2026
2.1.4 44 4/27/2026
2.1.3 36 4/25/2026
2.1.2 42 4/22/2026
2.1.1 555 4/22/2026
2.1.0 32 4/22/2026
2.0.3 35 4/15/2026
2.0.2 446 4/14/2026
2.0.0 901 3/11/2026
1.2.6 22,456 12/6/2025
1.2.4 203 12/6/2025
1.2.3 172 12/5/2025
1.2.2 126 12/5/2025
1.2.1 124 12/5/2025
1.1.3 306 12/5/2025
Loading failed

## New Version
* Bump `net_conduit` from `2.3.2` to `2.3.3`. See [changelog](https://github.com/Kiryuumaru/NetConduit/compare/net_conduit/2.3.2...net_conduit/2.3.3)

## What's Changed
* refactor: Namespace restructuring and unhappy path tests by @Kiryuumaru in https://github.com/Kiryuumaru/NetConduit/pull/77
* test: add nested mux tests (mux-over-channel) by @Kiryuumaru in https://github.com/Kiryuumaru/NetConduit/pull/76

**Full Changelog**: https://github.com/Kiryuumaru/NetConduit/compare/build.20260507135430.4298a59...build.20260508103848.0532658