Is there a .NET core library which implements scalable, zero-allocation client/server sockets?

I've seen certain benchmarks online (e.g. web framework benchmarks from TechEmpower) which compare various frameworks/stacks/OSes in different scenarios. There are also many articles and threads online which fall into several groups:

  1. "Highly scalable server using BeginReceive/EndReceive"
  2. "Highly scalable server using SocketAsyncEventArgs"
  3. "Highly scalable server using async/await"

And it seems like each new framework version brings a new best way of doing things.

However, with the inclusion of Span, Memory and other extensions which avoid allocations, I still cannot find a .NET library which I am supposed to use when for connection to thousands of IoT devices, without creating a heavy burden on the GC or the needed system RAM.

Is there a .NET framework which can handle 10k connections, which uses IOCP under the hood, doesn't make new allocations on each received packet, and doesn't need gigabytes of RAM?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.