aeron icon indicating copy to clipboard operation
aeron copied to clipboard

Efficient reliable UDP unicast, UDP multicast, and IPC message transport

Aeron

GitHub Javadocs

Actions Status Total Alerts Code Quality: Java Code Quality: C/C++

Efficient reliable UDP unicast, UDP multicast, and IPC message transport. Java, C, and C++ clients are available in this repository, and a .NET client is available from a 3rd party. All clients can exchange messages across machines, or on the same machine via IPC, very efficiently. Message streams can be recorded by the Archive module to persistent storage for later, or real-time, replay. Aeron Cluster provides support for fault-tolerant services as replicated state machines based on the Raft consensus algorithm.

Performance is the key focus. A design goal for Aeron is to be the highest throughput with the lowest and most predictable latency of any messaging system. Aeron integrates with Simple Binary Encoding (SBE) for the best possible message encoding and decoding performance. Many of the data structures used in the creation of Aeron have been factored out to the Agrona project.

For details of usage, protocol specification, FAQ, etc. please check out the Wiki.

For those who prefer to watch a video then try Aeron Messaging from StrangeLoop 2014. Things have advanced quite a bit with performance and features, but the basic design still applies.

For the latest version information and changes see the Change Log with Java downloads at Maven Central.

Commercial support, training, and development on Aeron is available from [email protected]. Premium features are available to customers on commercial support which include transport bindings for Solarflare/Xilinx ef_vi, Mellanox VMA, and AWS DPDK for further reduction in latency and increased throughput. Secure communications is available with ATS (Aeron Transport Security) for encrypted streams.

How do I use Aeron?

  1. Java Programming Guide
  2. C++11 Programming Guide
  3. Best Practices Guide
  4. Monitoring and Debugging
  5. Configuration Options
  6. Channel Specific Configuration
  7. Aeron Archive (Durable/Persistent Stream Storage)
  8. Aeron Cluster (Fault Tolerant Services)
  9. Aeron Cookbook by Shaun Laurens.

How does Aeron work?

  1. Transport Protocol Specification
  2. Design Overview
  3. Design Principles
  4. Flow Control Semantics
  5. Media Driver Operation

How do I hack on Aeron?

  1. Hacking on Aeron
  2. Performance Testing
  3. Building Aeron

License (See LICENSE file for full license)

Copyright 2014-2022 Real Logic Limited.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.