Vert.x core — низкоуровневый инструментарий для создания реактивных приложений на JVM на основе event loop, с поддержкой HTTP, TCP и доступа к файловой системе.
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
Установите последнюю версию из Maven Central в качестве зависимости (см. ссылку на Maven Central в README).
- 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 обновляется ежедневно.
Похожие проекты
Заголовочная C++14-библиотека с lock-free очередями на кольцевых буферах для обмена сообщениями между потоками с минимальной задержкой от push до pop.
Библиотека на C для сверхбыстрого некриптографического хеширования с одинаковыми 32-, 64- и 128-битными хешами на разных платформах.
Набор инструментов для конкурентного программирования на Rust: lock-free очереди, deques с work stealing, каналы, epoch-based GC, атомики и scoped-потоки.
Открытая библиотека Facebook с базовыми компонентами на C++20, дополняющая Boost и std и широко используемая внутри Meta.
Быстрый конкурентный in-memory кэш с вытеснением для Go: хранит множество записей в куче и снижает нагрузку на GC.