A .NET port of Aeron, providing efficient reliable UDP unicast, UDP multicast, and IPC message transport with high throughput and low latency.
Aeron.NET is a .NET port of the Aeron Client, providing efficient reliable UDP unicast, UDP multicast, and IPC message transport. It is designed to solve the need for high-throughput, low-latency messaging in performance-critical applications, such as financial trading or real-time data processing.
Developers building high-performance distributed systems, real-time applications, or financial trading platforms where low latency and high message throughput are critical.
Developers choose Aeron.NET for its focus on performance, with zero allocations after setup to minimize garbage collection, and its predictable low latency, making it a reliable choice for demanding messaging scenarios over alternatives.
Efficient reliable UDP unicast, UDP multicast, and IPC message transport - .NET port of Aeron
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Throughput samples demonstrate over 14 million messages per second via IPC, and latency histograms show microsecond-level predictability, as seen in the ping/pong sample.
Engineered to avoid allocations after setup, minimizing garbage collection pauses and ensuring consistent low latency, as stated in the project philosophy.
Uses shared memory for communication between the media driver and clients, providing high-speed inter-process communication without network overhead.
Supports reliable UDP unicast, UDP multicast, and IPC, offering flexibility for different networking scenarios, as highlighted in the key features.
The media driver requires Java 8 JRE, adding an external dependency that complicates deployment and management in .NET-centric environments.
Requires specific versions of Visual Studio and .NET Core SDK for building, and running the media driver separately increases operational overhead.
Developers must manage unsafe buffers and implement polling loops, which can be error-prone and less productive compared to event-driven or higher-level APIs.