SpanNetty
Port of Netty(v4.1.51.Final) for .NET
Install / Use
/learn @cuteant/SpanNettyREADME
SpanNetty
This is a fork of DotNetty.
Build Status
| Stage | Status |
|-----------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Build | |
| .NET Framework 451 Unit Tests |
|
| .NET Framework 471 Unit Tests |
|
| .NET Core (Windows) Unit Tests |
|
| .NET Core (Ubuntu 16.04) Unit Tests |
|
| .NET Core (Ubuntu 18.04) Unit Tests |
|
| .NET Core (macOS X Mojave 10.14) Unit Tests |
|
| .NET Core (macOS X Catalina 10.15) Unit Tests |
|
| .NET Netstandard (Windows) Unit Tests |
|
Features
- Align with Netty-4.1.51.Final
- ArrayPooledByteBuffer
- Support Span<byte> and Memory<byte> in Buffer/Common APIs
- Add support for IBufferWriter<byte> to the IByteBuffer
- ByteBufferReader and ByteBufferWriter
- HTTP 2 codec
Use
|Package|NuGet Version|MyGet Version|
|------|-------------|-------------|
|SpanNetty.Common||
|
|SpanNetty.Buffers|
|
|
|SpanNetty.Codecs|
|
|
|SpanNetty.Codecs.Http|
|
|
|SpanNetty.Codecs.Http2|
|
|
|SpanNetty.Codecs.Mqtt|
|
|
|SpanNetty.Codecs.Protobuf|
|
|
|SpanNetty.Handlers|
|
|
|SpanNetty.Transport|
|
|
|SpanNetty.Transport.Libuv|
|
|
Performance
OS=Windows 10.0.17134.1667
Intel Xeon CPU E3-1230 V2 3.30GHz, 1 CPU, 8 logical and 4 physical cores
.NET Core SDK=3.1.401
Here are some performance numbers from Akka.RemotePingPong(With SpanNetty) benchmark, which uses high volumes of small messages.
These numbers were all produced on a 4 core Intel i5 3.30hz PC over a single Akka.Remote connection running .NET Core 3.1 on Windows 10:
~ With Message Batching (Socket)
| Num clients (actors) | Total [msg] | Msgs/sec | Total [ms] | |----------------------|-------------|----------|------------| | 1 | 200000 | 74075 | 2700.29 | | 5 | 1000000 | 167281 | 5978.33 | | 10 | 2000000 | 196406 | 10183.36 | | 15 | 3000000 | 209805 | 14299.36 | | 20 | 4000000 | 210096 | 19039.21 | | 25 | 5000000 | 210678 | 23733.14 | | 30 | 6000000 | 203985 | 29414.13 |
Average performance: 181,760 msg/s.
~ With Message Batching (Libuv)
| Num clients (actors) | Total [msg] | Msgs/sec | Total [ms] | |----------------------|-------------|----------|------------| | 1 | 200000 | 76570 | 2612.17 | | 5 | 1000000 | 159516 | 6269.25 | | 10 | 2000000 | 187161 | 10686.69 | | 15 | 3000000 | 198073 | 15146.09 | | 20 | 4000000 | 190124 | 21039.95 | | 25 | 5000000 | 184027 | 27170.75 | | 30 | 6000000 | 173752 | 34532.69 |
Average performance: 167,031 msg/s.
~ With I/O Batching (Socket)
| Num clients (actors) | Total [msg] | Msgs/sec | Total [ms] | |----------------------|-------------|----------|------------| | 1 | 200000 | 64893 | 3082.78 | | 5 | 1000000 | 145181 | 6888.77 | | 10 | 2000000 | 162761 | 12288.34 | | 15 | 3000000 | 160231 | 18723.05 | | 20 | 4000000 | 148242 | 26983.94 | | 25 | 5000000 | 132269 | 37802.50 | | 30 | 6000000 | 123597 | 48545.25 |
Average performance: 133,882 msg/s.
~ With I/O Batching (Libuv)
| Nu
Related Skills
node-connect
341.0kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
84.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
341.0kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
84.4kCommit, push, and open a PR
