Repolode
aeron-io

aeron-io/agrona

Biblioteca Java de estructuras de datos y utilidades de alto rendimiento, como colecciones de tipos primitivos, buffers off-heap, colas y ruedas de temporizadores.

Estrellas
3,266
Forks
459
Issues abiertos
8
Último commit
anteayer

¿Qué es?

Agrona es una biblioteca Java de estructuras de datos y métodos utilitarios para crear aplicaciones de alto rendimiento. La utiliza el transporte de mensajes Aeron y proporciona las implementaciones de buffers de las que depende el códec de mensajes Simple Binary Encoding.

La biblioteca se centra en evitar el boxing de objetos y la sobrecarga del garbage collector. Incluye listas, mapas y conjuntos de tipos primitivos int y long que usan direccionamiento abierto, una caché asociativa por conjuntos y colas lock-free. Los buffers pueden envolver memoria on-heap u off-heap con semántica de ordenamiento de memoria, y los buffers de anillo y de difusión se implementan off-heap para la comunicación IPC.

Otras utilidades incluyen abstracciones de reloj que permiten el almacenamiento en caché y las pruebas, una rueda de temporizadores escalable con registro y cancelación O(1), un framework sencillo de agentes para servicios concurrentes, contadores off-heap, un registro de errores independiente y un generador de IDs al estilo Snowflake. El proyecto se compila con Gradle y está dirigido a Java 17 y versiones posteriores.

Funciones clave

  • 01Listas, mapas y conjuntos de tipos primitivos int y long que evitan el boxing
  • 02Buffers que envuelven memoria on-heap y off-heap con semántica de ordenamiento de memoria
  • 03Colas lock-free y buffers de anillo y de difusión off-heap para IPC
  • 04Rueda de temporizadores escalable con registro y cancelación O(1)
  • 05Contadores off-heap y un registro de errores independiente
  • 06Generador concurrente de IDs únicos al estilo Snowflake

Casos de uso

  • Crear sistemas de mensajería o trading Java de baja latencia que deban limitar las pausas del garbage collector
  • Sustituir las colecciones de java.util en rutas críticas que almacenan claves de tipos primitivos
  • Compartir datos entre procesos mediante buffers de anillo o de difusión off-heap
  • Programar grandes cantidades de temporizadores con una rueda de temporizadores

Inicio rápido

  1. 1

    Instala la versión más reciente desde Maven Central como dependencia (consulta el enlace a Maven Central en el README).

  2. 2

    Compila el proyecto desde el código fuente con Gradle.

    ./gradlew

Antes de usarlo

  • Requiere Java 17 o una versión posterior para compilarlo y usarlo.
  • Ofrece utilidades de bajo nivel para código de alto rendimiento, por lo que está pensado para usos especializados y no para el desarrollo general de aplicaciones.

En colecciones

Temas

Preguntas frecuentes

¿Qué es agrona?
Biblioteca Java de estructuras de datos y utilidades de alto rendimiento, como colecciones de tipos primitivos, buffers off-heap, colas y ruedas de temporizadores. Agrona es una biblioteca Java de estructuras de datos y métodos utilitarios para crear aplicaciones de alto rendimiento. La utiliza el transporte de mensajes Aeron y proporciona las implementaciones de buffers de las que depende el códec de mensajes Simple Binary Encoding.
¿agrona es gratuito? ¿Qué licencia tiene?
agrona es open source bajo la licencia Apache-2.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿agrona sigue mantenido?
Mantenimiento activo. El último commit de agrona fue el 6 nov 2026.
¿Para qué puedo usar agrona?
Crear sistemas de mensajería o trading Java de baja latencia que deban limitar las pausas del garbage collector Sustituir las colecciones de java.util en rutas críticas que almacenan claves de tipos primitivos Compartir datos entre procesos mediante buffers de anillo o de difusión off-heap Programar grandes cantidades de temporizadores con una rueda de temporizadores
¿Cómo se instala agrona?
Instala la versión más reciente desde Maven Central como dependencia (consulta el enlace a Maven Central en el README). Compila el proyecto desde el código fuente con Gradle.: ./gradlew
¿Dónde consigo agrona?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/aeron-io/agrona

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados