Haukcode.HighPerfComm
1.0.29
dotnet add package Haukcode.HighPerfComm --version 1.0.29
NuGet\Install-Package Haukcode.HighPerfComm -Version 1.0.29
<PackageReference Include="Haukcode.HighPerfComm" Version="1.0.29" />
<PackageVersion Include="Haukcode.HighPerfComm" Version="1.0.29" />
<PackageReference Include="Haukcode.HighPerfComm" />
paket add Haukcode.HighPerfComm --version 1.0.29
#r "nuget: Haukcode.HighPerfComm, 1.0.29"
#:package Haukcode.HighPerfComm@1.0.29
#addin nuget:?package=Haukcode.HighPerfComm&version=1.0.29
#tool nuget:?package=Haukcode.HighPerfComm&version=1.0.29
Haukcode.HighPerfComm
High-performance .NET library for packet-based network communication with built-in memory pooling, pipelining, and performance monitoring.
Features
✅ High-performance async packet processing
✅ Memory-efficient with buffer pooling
✅ Built-in HDR histogram statistics
✅ Automatic packet age management
✅ Back-pressure handling
✅ Supports .NET Standard 2.1, .NET 8.0, .NET 9.0
Quick Start
using Haukcode.HighPerfComm;
// 1. Extend the Client base class
public class MyUdpClient : Client<MySendData, MyPacket>
{
public MyUdpClient(int packetSize, Func<MyPacket, Task> handler)
: base(packetSize, handler, null) { }
// Implement abstract methods for your protocol
protected override void InitializeReceiveSocket() { /* ... */ }
protected override void DisposeReceiveSocket() { /* ... */ }
protected override ValueTask<(int, SocketReceiveMessageFromResult)>
ReceiveData(Memory<byte> memory, CancellationToken ct) { /* ... */ }
protected override ValueTask<int> SendPacketAsync(
MySendData data, ReadOnlyMemory<byte> payload) { /* ... */ }
protected override MyPacket? TryParseObject(
ReadOnlyMemory<byte> buffer, double timestamp,
IPEndPoint source, IPAddress dest) { /* ... */ }
}
// 2. Use your client
using var client = new MyUdpClient(1500, async packet =>
{
Console.WriteLine($"Received: {packet}");
});
// 3. Send packets
await client.QueuePacket(
allocatePacketLength: dataLength,
important: false,
sendDataFactory: () => new MySendData(),
packetWriter: buffer => { /* fill buffer */ return length; }
);
// 4. Monitor performance
var stats = client.GetSendStatistics(reset: false);
Console.WriteLine($"Total: {stats.TotalPackets}, Dropped: {stats.DroppedPackets}");
Key Benefits
- Zero-copy operations using
Memory<T>andSpan<T> - Lock-free send queue via
System.Threading.Channels - Minimal GC pressure through
MemoryPool<byte> - Automatic stale packet dropping (>200ms age threshold)
- 100,000+ packets/second throughput on modern hardware
Documentation
For comprehensive documentation, examples, and API reference, visit:
👉 GitHub Repository
License
MIT License - see LICENSE
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. 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 was computed. 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. |
| .NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.1 is compatible. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
- HdrHistogram (>= 2.5.0)
- System.Buffers (>= 4.6.1)
- System.IO.Pipelines (>= 10.0.2)
- System.Net.Http (>= 4.3.4)
- System.Reactive (>= 6.1.0)
- System.Text.RegularExpressions (>= 4.3.1)
- System.Threading.Channels (>= 10.0.2)
-
net8.0
- HdrHistogram (>= 2.5.0)
- System.Buffers (>= 4.6.1)
- System.IO.Pipelines (>= 10.0.2)
- System.Net.Http (>= 4.3.4)
- System.Reactive (>= 6.1.0)
- System.Text.RegularExpressions (>= 4.3.1)
- System.Threading.Channels (>= 10.0.2)
-
net9.0
- HdrHistogram (>= 2.5.0)
- System.Buffers (>= 4.6.1)
- System.IO.Pipelines (>= 10.0.2)
- System.Net.Http (>= 4.3.4)
- System.Reactive (>= 6.1.0)
- System.Text.RegularExpressions (>= 4.3.1)
- System.Threading.Channels (>= 10.0.2)
NuGet packages (3)
Showing the top 3 NuGet packages that depend on Haukcode.HighPerfComm:
| Package | Downloads |
|---|---|
|
Haukcode.ArtNet
ArtNet library for .NET Core (.NET8+) |
|
|
Haukcode.sACN
A simple sACN library for .NET Core |
|
|
Haukcode.KiNet
A simple KiNet library for .NET Core |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.29 | 0 | 2/5/2026 |
| 1.0.28 | 0 | 2/5/2026 |
| 1.0.24 | 501 | 10/7/2025 |
| 1.0.23 | 524 | 4/8/2025 |
| 1.0.22 | 598 | 3/13/2025 |
| 1.0.21 | 213 | 2/13/2025 |
| 1.0.20 | 248 | 1/24/2025 |
| 1.0.19 | 204 | 1/15/2025 |
| 1.0.18 | 204 | 1/10/2025 |
| 1.0.17 | 266 | 1/7/2025 |
| 1.0.16 | 182 | 1/7/2025 |
| 1.0.15 | 417 | 12/17/2024 |
| 1.0.14 | 142 | 12/17/2024 |
| 1.0.13 | 314 | 12/12/2024 |
| 1.0.12 | 188 | 12/12/2024 |
| 1.0.11 | 220 | 12/10/2024 |
| 1.0.10 | 203 | 12/6/2024 |
| 1.0.9 | 192 | 12/6/2024 |
| 1.0.8 | 243 | 12/3/2024 |
| 1.0.7 | 187 | 12/2/2024 |
| 1.0.6-main-6a03c22e | 148 | 12/2/2024 |
| 1.0.5-main-1e01f199 | 148 | 12/2/2024 |