Skip to content

cuteant/SpanNetty

Repository files navigation

SpanNetty

This is a fork of DotNetty.

Build Status

Stage Status
Build Build Status
.NET Framework 451 Unit Tests Build Status
.NET Framework 471 Unit Tests Build Status
.NET Core (Windows) Unit Tests Build Status
.NET Core (Ubuntu 16.04) Unit Tests Build Status
.NET Core (Ubuntu 18.04) Unit Tests Build Status
.NET Core (macOS X Mojave 10.14) Unit Tests Build Status
.NET Core (macOS X Catalina 10.15) Unit Tests Build Status
.NET Netstandard (Windows) Unit Tests Build status

Features

Use

  • Stable builds are available on NuGet.
  • Nightly builds are available on MyGet.
Package NuGet Version MyGet Version
SpanNetty.Common NuGet Version and Downloads count MyGet Version
SpanNetty.Buffers NuGet Version and Downloads count MyGet Version
SpanNetty.Codecs NuGet Version and Downloads count MyGet Version
SpanNetty.Codecs.Http NuGet Version and Downloads count MyGet Version
SpanNetty.Codecs.Http2 NuGet Version and Downloads count MyGet Version
SpanNetty.Codecs.Mqtt NuGet Version and Downloads count MyGet Version
SpanNetty.Codecs.Protobuf NuGet Version and Downloads count MyGet Version
SpanNetty.Handlers NuGet Version and Downloads count MyGet Version
SpanNetty.Transport NuGet Version and Downloads count MyGet Version
SpanNetty.Transport.Libuv NuGet Version and Downloads count MyGet 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/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)

Num clients (actors) Total [msg] Msgs/sec Total [ms]
1 200000 63634 3143.60
5 1000000 133298 7502.06
10 2000000 149288 13397.27
15 3000000 146865 20427.17
20 4000000 132101 30280.71
25 5000000 115415 43322.88
30 6000000 111620 53754.96

Average performance: 121,745 msg/s.

~ No I/O Batching (Socket)

Num clients (actors) Total [msg] Msgs/sec Total [ms]
1 200000 31348 6380.59
5 1000000 53698 18623.22
10 2000000 62066 32224.90
15 3000000 60902 49260.73
20 4000000 56694 70555.15
25 5000000 15152 330000.86

Average performance: 46,643 msg/s.

~ No I/O Batching (Libuv)

Num clients (actors) Total [msg] Msgs/sec Total [ms]
1 200000 71995 2778.50
5 1000000 131441 7608.04
10 2000000 144041 13885.52
15 3000000 134433 22316.79
20 4000000 126575 31602.55
25 5000000 120759 41405.54
30 6000000 119919 50034.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

  • Official releases are on NuGet.
  • Nightly builds are available on MyGet.

Contribute

We gladly accept community contributions.