Description
Agrona provides a library of data structures and utility methods that are a common need when building high-performance
applications in Java. Many of these utilities are used in the Aeron
efficient reliable UDP unicast, multicast, and IPC message transport and provides high-performance buffer implementations
to support the Simple Binary Encoding Message Codec.
For the latest version information and changes see the Change Log.
The latest release and downloads can be found in Maven Central.
Utilities Included:
Agrona alternatives and similar libraries
Based on the "High Performance" category.
Alternatively, view Agrona alternatives based on common mentions on social networks and blogs.
-
Eclipse Collections
Eclipse Collections is a collections framework for Java with optimized data structures and a rich, functional and fluent API. -
GS Collections
GS Collections has been migrated to the Eclipse Foundation, re-branded as Eclipse Collections. https://www.eclipse.org/collections/ -
fastutil
fastutil extends the Java™ Collections Framework by providing type-specific maps, sets, lists and queues. -
Primitive-Collections
A Primitive Collection library that reduces memory usage and improves performance and provides a lot of QoL
CodeRabbit: AI Code Reviews for Developers

* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of Agrona or a related project?
README
Agrona
Agrona provides a library of data structures and utility methods that are a common need when building high-performance applications in Java. Many of these utilities are used in the Aeron efficient reliable UDP unicast, multicast, and IPC message transport and provides high-performance buffer implementations to support the Simple Binary Encoding Message Codec.
For the latest version information and changes see the Change Log.
The latest release and downloads can be found in Maven Central.
Utilities Include:
- Buffers - Thread safe direct and atomic buffers for working with on and off heap memory with memory ordering semantics.
- Lists - Array backed lists of int/long primitives to avoid boxing.
- Maps - Open addressing and linear probing with int/long primitive keys to object reference values.
- Maps - Open addressing and linear probing with int/long primitive keys to int/long values.
- Sets - Open addressing and linear probing for int/long primitives and object references.
- Cache - Set Associative with int/long primitive keys to object reference values.
- Clocks - Clock implementations to abstract system clocks, allow caching, and enable testing.
- Queues - Lock-less implementations for low-latency applications.
- Ring/Broadcast Buffers - implemented off-heap for IPC communication.
- Simple Agent framework for concurrent services.
- Signal handling to support "Ctrl + c" in a server application.
- Scalable Timer Wheel - For scheduling timers at a given deadline with O(1) register and cancel time.
- Code generation from annotated implementations specialised for primitive types.
- Off-heap counters implementation for application telemetry, position tracking, and coordination.
- Implementations of InputStream and OutputStream that can wrap direct buffers.
- DistinctErrorLog - A log of distinct errors to avoid filling disks with existing logging approaches.
- IdGenerator - Concurrent and distributed unique id generator employing a lock-less implementation of the Twitter Snowflake algorithm.
Build
Java Build
Build the project with Gradle using this build.gradle file.
You require the following to build Agrona:
- The Latest release of Java 8. Agrona is tested with Java 8, 11, 16 and 17-ea.
Full clean and build:
$ ./gradlew
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.
*Note that all licence references and agreements mentioned in the Agrona README section above
are relevant to that project's source code only.