Repolode
aeron-io

aeron-io/agrona

Java-библиотека высокопроизводительных структур данных и утилит: примитивные коллекции, off-heap-буферы, очереди и колёса таймеров.

Звёзды
3,266
Форки
459
Открытые issues
8
Последний коммит
вчера

Что это?

Agrona — Java-библиотека структур данных и вспомогательных методов для создания высокопроизводительных приложений. Она используется в транспортном уровне сообщений Aeron и предоставляет реализации буферов, от которых зависит кодек сообщений Simple Binary Encoding.

Библиотека помогает избегать упаковки примитивов в объекты и издержек сборки мусора. В неё входят списки, карты и множества для int и long с открытой адресацией, кэш с множеством ассоциативных наборов и lock-free-очереди. Буферы могут оборачивать память в куче или вне кучи, поддерживая семантику упорядочивания памяти; кольцевые и широковещательные буферы для обмена данными между процессами реализованы вне кучи.

Другие утилиты включают абстракции часов, позволяющие использовать кэширование и тестирование, масштабируемое колесо таймеров с регистрацией и отменой за O(1), простой фреймворк агентов для параллельных сервисов, счётчики вне кучи, отдельный журнал ошибок и генератор идентификаторов в стиле Snowflake. Проект собирается с помощью Gradle и рассчитан на Java 17 и новее.

Ключевые возможности

  • 01Примитивные списки, карты и множества для int и long, не требующие упаковки в объекты
  • 02Буферы, оборачивающие память в куче и вне кучи с семантикой упорядочивания памяти
  • 03Lock-free-очереди, а также кольцевые и широковещательные буферы вне кучи для IPC
  • 04Масштабируемое колесо таймеров с регистрацией и отменой за O(1)
  • 05Счётчики вне кучи и отдельный журнал ошибок
  • 06Параллельный генератор уникальных идентификаторов в стиле Snowflake

Сценарии использования

  • Создание низколатентных Java-систем обмена сообщениями или торговли, в которых важно свести к минимуму паузы сборщика мусора
  • Замена коллекций java.util на горячих участках кода, где хранятся примитивные ключи
  • Обмен данными между процессами через кольцевые или широковещательные буферы вне кучи
  • Планирование большого количества таймеров с помощью колеса таймеров

Быстрый старт

  1. 1

    Установите последнюю версию из Maven Central в качестве зависимости (см. ссылку на Maven Central в README).

  2. 2

    Соберите проект из исходного кода с помощью Gradle.

    ./gradlew

Что важно знать

  • Для сборки и использования требуется Java 17 или новее.
  • Предоставляет низкоуровневые утилиты для высокопроизводительного кода, поэтому предназначен для специализированных задач, а не для разработки приложений общего назначения.

В подборках

Темы

Частые вопросы

Что такое agrona?
Java-библиотека высокопроизводительных структур данных и утилит: примитивные коллекции, off-heap-буферы, очереди и колёса таймеров. Agrona — Java-библиотека структур данных и вспомогательных методов для создания высокопроизводительных приложений. Она используется в транспортном уровне сообщений Aeron и предоставляет реализации буферов, от которых зависит кодек сообщений Simple Binary Encoding.
agrona можно использовать бесплатно? Какая у него лицензия?
agrona распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
agrona всё ещё поддерживается?
Активно поддерживается. Последний коммит в agrona — 6 нояб. 2026 г..
Для чего можно использовать agrona?
Создание низколатентных Java-систем обмена сообщениями или торговли, в которых важно свести к минимуму паузы сборщика мусора Замена коллекций java.util на горячих участках кода, где хранятся примитивные ключи Обмен данными между процессами через кольцевые или широковещательные буферы вне кучи Планирование большого количества таймеров с помощью колеса таймеров
Как установить agrona?
Установите последнюю версию из Maven Central в качестве зависимости (см. ссылку на Maven Central в README). Соберите проект из исходного кода с помощью Gradle.: ./gradlew
Где скачать agrona?
Исходный код и инструкции по установке — на GitHub: https://github.com/aeron-io/agrona

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Vert.x core — низкоуровневый инструментарий для создания реактивных приложений на JVM на основе event loop, с поддержкой HTTP, TCP и доступа к файловой системе.

14,7 тыс.2,1 тыс.JavaOtherАктивно поддерживаетсяОбновлён 24 часа назад

Заголовочная C++14-библиотека с lock-free очередями на кольцевых буферах для обмена сообщениями между потоками с минимальной задержкой от push до pop.

1,9 тыс.+1 за неделю222C++MITОбновлён 16 дней назад

Библиотека на C для сверхбыстрого некриптографического хеширования с одинаковыми 32-, 64- и 128-битными хешами на разных платформах.

Инструменты разработчика#hash-function#checksum#non-cryptographic
11,4 тыс.+9 за неделю946COtherАктивно поддерживаетсяОбновлён 10 дней назад

Открытая библиотека Facebook с базовыми компонентами на C++20, дополняющая Boost и std и широко используемая внутри Meta.

30,6 тыс.5,9 тыс.C++Apache-2.0Обновлён вчера