Agrona - Library to build high-performance applications in Java and C++
Agrona provides a library of data structures and utility methods that are a common need when building high-performance applications in Java and C++. It supports Buffers, Map, Sets, Cache, Queues and lot more.
- Buffers - Thread safe direct and atomic 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.
- Basic Agent framework.
- Signal handling to support "Ctrl + c" in a server application.
- Scalable Timer Wheel.
- Basic code generation from annotated implementations that can vary on primitive types.
- Off-heap counters implementation for application telemetry and position tracking.
- Implementations of InputStream and OutputStream that can wrap direct buffers.
- DistinctErrorLog: A log of distinct errors to avoid filling disks with existing logging approaches.
https://github.com/real-logic/Agrona
License:
Tech:
Tags: