Repolode
aeron-io

aeron-io/agrona

Biblioteca Java de estruturas de dados e utilitários de alto desempenho, como coleções de tipos primitivos, buffers off-heap, filas e rodas de temporizadores.

Estrelas
3,266
Forks
459
Issues abertas
8
Último commit
anteontem

O que é?

Agrona é uma biblioteca Java de estruturas de dados e métodos utilitários para criar aplicações de alto desempenho. Ela é usada pelo transporte de mensagens Aeron e fornece as implementações de buffer das quais depende o codec de mensagens Simple Binary Encoding.

A biblioteca se concentra em evitar o boxing de objetos e a sobrecarga do garbage collector. Ela inclui listas, mapas e conjuntos de tipos primitivos int e long que usam endereçamento aberto, um cache associativo por conjuntos e filas lock-free. Os buffers podem encapsular memória on-heap ou off-heap com semânticas de ordenação de memória, e os buffers circulares e de broadcast são implementados off-heap para comunicação IPC.

Outros utilitários incluem abstrações de relógio que permitem cache e testes, uma roda de temporizadores escalável com registro e cancelamento O(1), um framework simples de agentes para serviços concorrentes, contadores off-heap, um log de erros distinto e um gerador de IDs no estilo Snowflake. O projeto é compilado com Gradle e tem como alvo Java 17 ou posterior.

Recursos principais

  • 01Listas, mapas e conjuntos de tipos primitivos int e long que evitam boxing
  • 02Buffers que encapsulam memória on-heap e off-heap com semânticas de ordenação de memória
  • 03Filas lock-free e buffers circulares e de broadcast off-heap para IPC
  • 04Roda de temporizadores escalável com registro e cancelamento O(1)
  • 05Contadores off-heap e um log de erros distinto
  • 06Gerador concorrente de IDs únicos no estilo Snowflake

Casos de uso

  • Criar sistemas Java de mensagens ou trading de baixa latência que precisam limitar as pausas do garbage collector
  • Substituir coleções de java.util em caminhos críticos que armazenam chaves de tipos primitivos
  • Compartilhar dados entre processos por meio de buffers circulares ou de broadcast off-heap
  • Agendar grandes quantidades de temporizadores com uma roda de temporizadores

Início rápido

  1. 1

    Instale a versão mais recente do Maven Central como dependência (consulte o link do Maven Central no README).

  2. 2

    Compile o projeto a partir do código-fonte com Gradle.

    ./gradlew

Antes de usar

  • Requer Java 17 ou versão mais recente para compilar e usar.
  • Oferece utilitários de baixo nível para código de alto desempenho, por isso é voltado a usos especializados, e não ao desenvolvimento geral de aplicações.

Em coleções

Tópicos

Perguntas frequentes

O que é agrona?
Biblioteca Java de estruturas de dados e utilitários de alto desempenho, como coleções de tipos primitivos, buffers off-heap, filas e rodas de temporizadores. Agrona é uma biblioteca Java de estruturas de dados e métodos utilitários para criar aplicações de alto desempenho. Ela é usada pelo transporte de mensagens Aeron e fornece as implementações de buffer das quais depende o codec de mensagens Simple Binary Encoding.
agrona é gratuito? Qual é a licença?
agrona é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
agrona ainda é mantido?
Manutenção ativa. O último commit de agrona foi em 6 de nov. de 2026.
Para que posso usar agrona?
Criar sistemas Java de mensagens ou trading de baixa latência que precisam limitar as pausas do garbage collector Substituir coleções de java.util em caminhos críticos que armazenam chaves de tipos primitivos Compartilhar dados entre processos por meio de buffers circulares ou de broadcast off-heap Agendar grandes quantidades de temporizadores com uma roda de temporizadores
Como instalar agrona?
Instale a versão mais recente do Maven Central como dependência (consulte o link do Maven Central no README). Compile o projeto a partir do código-fonte com Gradle.: ./gradlew
Onde consigo agrona?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/aeron-io/agrona

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados