All Projects → real-logic → Agrona

real-logic / Agrona

Licence: apache-2.0
High Performance data structures and utility methods for Java

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Agrona

Parallel Consumer
Parallel Apache Kafka client wrapper with client side queueing, a simpler consumer/producer API with key concurrency and extendable non-blocking IO processing.
Stars: ✭ 154 (-92.65%)
Mutual labels:  performance
Explain Pause Mode
top, but for Emacs.
Stars: ✭ 158 (-92.45%)
Mutual labels:  performance
Kubestone
Performance benchmarks for Kubernetes
Stars: ✭ 159 (-92.41%)
Mutual labels:  performance
Opbeat Node
DEPRECATED - See Elastic APM instead: https://github.com/elastic/apm-agent-nodejs
Stars: ✭ 155 (-92.6%)
Mutual labels:  performance
K6
A modern load testing tool, using Go and JavaScript - https://k6.io
Stars: ✭ 14,829 (+608.17%)
Mutual labels:  performance
Router
⚡️ A lightning fast HTTP router
Stars: ✭ 158 (-92.45%)
Mutual labels:  performance
Appmetrics
App Metrics is an open-source and cross-platform .NET library used to record and report metrics within an application.
Stars: ✭ 1,986 (-5.16%)
Mutual labels:  performance
Laravel Mix Preload
Add preload and prefetch links based your Mix manifest
Stars: ✭ 162 (-92.26%)
Mutual labels:  performance
Aimeos Typo3
TYPO3 e-commerce extension for professional, ultra fast online shops, complex B2B applications and #gigacommerce
Stars: ✭ 157 (-92.5%)
Mutual labels:  performance
Androidperformancetools
Android Performance Tools!
Stars: ✭ 159 (-92.41%)
Mutual labels:  performance
Speedracer
Collect performance metrics for your library/application.
Stars: ✭ 1,868 (-10.79%)
Mutual labels:  performance
Visualvm
VisualVM is an All-in-One Java Troubleshooting Tool
Stars: ✭ 2,084 (-0.48%)
Mutual labels:  performance
Lbann
Livermore Big Artificial Neural Network Toolkit
Stars: ✭ 157 (-92.5%)
Mutual labels:  performance
Tinydancer
An android library for displaying fps from the choreographer and percentage of time with two or more frames dropped
Stars: ✭ 1,859 (-11.22%)
Mutual labels:  performance
Are We Fast Yet
Are We Fast Yet? Comparing Language Implementations with Objects, Closures, and Arrays
Stars: ✭ 161 (-92.31%)
Mutual labels:  performance
Swissarmylib
Collection of helpful utilities we use in our Unity projects.
Stars: ✭ 154 (-92.65%)
Mutual labels:  performance
Ecs
Thoughts about entity-component-system
Stars: ✭ 158 (-92.45%)
Mutual labels:  performance
Powershell ipv4networkscanner
Powerful asynchronus IPv4 network scanner for PowerShell
Stars: ✭ 161 (-92.31%)
Mutual labels:  performance
Blog
Our open source benchmarks and code samples
Stars: ✭ 162 (-92.26%)
Mutual labels:  performance
Image Optimizer
Easily optimize images using PHP
Stars: ✭ 2,127 (+1.58%)
Mutual labels:  performance

Agrona

Javadocs GitHub

Actions Status Total Alerts Code Quality: Java

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-2021 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 the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].