Home

Awesome

SpanNetty

This is a fork of DotNetty.

Build Status

StageStatus
BuildBuild Status
.NET Framework 451 Unit TestsBuild Status
.NET Framework 471 Unit TestsBuild Status
.NET Core (Windows) Unit TestsBuild Status
.NET Core (Ubuntu 16.04) Unit TestsBuild Status
.NET Core (Ubuntu 18.04) Unit TestsBuild Status
.NET Core (macOS X Mojave 10.14) Unit TestsBuild Status
.NET Core (macOS X Catalina 10.15) Unit TestsBuild Status
.NET Netstandard (Windows) Unit TestsBuild status

Features

Use

PackageNuGet VersionMyGet Version
SpanNetty.CommonNuGet Version and Downloads countMyGet Version
SpanNetty.BuffersNuGet Version and Downloads countMyGet Version
SpanNetty.CodecsNuGet Version and Downloads countMyGet Version
SpanNetty.Codecs.HttpNuGet Version and Downloads countMyGet Version
SpanNetty.Codecs.Http2NuGet Version and Downloads countMyGet Version
SpanNetty.Codecs.MqttNuGet Version and Downloads countMyGet Version
SpanNetty.Codecs.ProtobufNuGet Version and Downloads countMyGet Version
SpanNetty.HandlersNuGet Version and Downloads countMyGet Version
SpanNetty.TransportNuGet Version and Downloads countMyGet Version
SpanNetty.Transport.LibuvNuGet Version and Downloads countMyGet Version

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/secTotal [ms]
1200000740752700.29
510000001672815978.33
10200000019640610183.36
15300000020980514299.36
20400000021009619039.21
25500000021067823733.14
30600000020398529414.13

Average performance: 181,760 msg/s.

~ With Message Batching (Libuv)

Num clients (actors)Total [msg]Msgs/secTotal [ms]
1200000765702612.17
510000001595166269.25
10200000018716110686.69
15300000019807315146.09
20400000019012421039.95
25500000018402727170.75
30600000017375234532.69

Average performance: 167,031 msg/s.

~ With I/O Batching (Socket)

Num clients (actors)Total [msg]Msgs/secTotal [ms]
1200000648933082.78
510000001451816888.77
10200000016276112288.34
15300000016023118723.05
20400000014824226983.94
25500000013226937802.50
30600000012359748545.25

Average performance: 133,882 msg/s.

~ With I/O Batching (Libuv)

Num clients (actors)Total [msg]Msgs/secTotal [ms]
1200000636343143.60
510000001332987502.06
10200000014928813397.27
15300000014686520427.17
20400000013210130280.71
25500000011541543322.88
30600000011162053754.96

Average performance: 121,745 msg/s.

~ No I/O Batching (Socket)

Num clients (actors)Total [msg]Msgs/secTotal [ms]
1200000313486380.59
510000005369818623.22
1020000006206632224.90
1530000006090249260.73
2040000005669470555.15
25500000015152330000.86

Average performance: 46,643 msg/s.

~ No I/O Batching (Libuv)

Num clients (actors)Total [msg]Msgs/secTotal [ms]
1200000719952778.50
510000001314417608.04
10200000014404113885.52
15300000013443322316.79
20400000012657531602.55
25500000012075941405.54
30600000011991950034.57

Average performance: 121,309 msg/s.

~ ORIGINAL README ~

DotNetty Project

Join the chat at https://gitter.im/Azure/DotNetty Available on NuGet https://www.nuget.org/packages?q=DotNetty AppVeyor

DotNetty is a port of Netty, asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients.

Use

Contribute

We gladly accept community contributions.