Repolode
aeron-io

aeron-io/agrona

プリミティブコレクション、オフヒープバッファ、キュー、タイマーホイールなどを備えた、高性能なJavaデータ構造・ユーティリティライブラリ。

スター
3,266
フォーク
459
未解決の Issue
8
最終コミット
15 時間前

これは何?

Agronaは、高性能アプリケーションの構築に使えるデータ構造とユーティリティメソッドを提供するJavaライブラリです。Aeronのメッセージトランスポートで利用されており、Simple Binary Encodingのメッセージcodecが依存するバッファ実装も提供します。

このライブラリは、オブジェクトのボクシングやガベージコレクションによるオーバーヘッドの削減を重視しています。intとlongのプリミティブリスト、オープンアドレッシングを使うマップとセット、セットアソシアティブキャッシュ、ロックフリーキューを備えています。バッファはメモリ順序のセマンティクスを保ちながらヒープ内またはオフヒープのメモリをラップでき、IPC通信向けのリングバッファとブロードキャストバッファはオフヒープで実装されています。

そのほか、キャッシュやテストに利用できるクロック抽象化、登録とキャンセルをO(1)で行えるスケーラブルなタイマーホイール、並行サービス向けのシンプルなエージェントフレームワーク、オフヒープカウンター、独立したエラーログ、Snowflake方式のID生成器などのユーティリティがあります。Gradleでビルドでき、Java 17以降を対象としています。

主な機能

  • 01ボクシングを避けられる、プリミティブ型int・longのリスト、マップ、セット
  • 02メモリ順序のセマンティクスを保ちながら、ヒープ内およびオフヒープのメモリをラップするバッファ
  • 03ロックフリーキューと、IPC向けのオフヒープリングバッファおよびブロードキャストバッファ
  • 04登録とキャンセルをO(1)で行えるスケーラブルなタイマーホイール
  • 05オフヒープカウンターと独立したエラーログ
  • 06Snowflake方式の並行処理対応ユニークID生成器

ユースケース

  • ガベージコレクションの停止時間を抑える必要がある、低レイテンシのJavaメッセージングシステムやトレーディングシステムの構築
  • プリミティブ型のキーを扱うホットパスで、java.utilのコレクションを置き換える
  • オフヒープのリングバッファやブロードキャストバッファを介したプロセス間のデータ共有
  • タイマーホイールを使った大量のタイマーのスケジューリング

クイックスタート

  1. 1

    依存関係として Maven Central から最新リリースをインストールします(README の Maven Central リンクを参照)

  2. 2

    Gradle でソースからプロジェクトをビルドします

    ./gradlew

使う前に知っておきたいこと

  • ビルドと使用には Java 17 以降が必要です。
  • 高性能なコード向けの低レベルユーティリティを提供するため、一般的なアプリケーション開発ではなく、特定の用途を対象としています。

収録されている特集

トピック

よくある質問

agrona とは?
プリミティブコレクション、オフヒープバッファ、キュー、タイマーホイールなどを備えた、高性能なJavaデータ構造・ユーティリティライブラリ。 Agronaは、高性能アプリケーションの構築に使えるデータ構造とユーティリティメソッドを提供するJavaライブラリです。Aeronのメッセージトランスポートで利用されており、Simple Binary Encodingのメッセージcodecが依存するバッファ実装も提供します。
agrona は無料で使えますか?ライセンスは?
agrona は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
agrona は今もメンテナンスされていますか?
活発にメンテナンス中。agrona の最終コミットは 2026年11月6日 です。
agrona は何に使えますか?
ガベージコレクションの停止時間を抑える必要がある、低レイテンシのJavaメッセージングシステムやトレーディングシステムの構築 プリミティブ型のキーを扱うホットパスで、java.utilのコレクションを置き換える オフヒープのリングバッファやブロードキャストバッファを介したプロセス間のデータ共有 タイマーホイールを使った大量のタイマーのスケジューリング
agrona のインストール方法は?
依存関係として Maven Central から最新リリースをインストールします(README の Maven Central リンクを参照) Gradle でソースからプロジェクトをビルドします: ./gradlew
agrona はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/aeron-io/agrona

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト

プラットフォームを問わず同一の32、64、128ビットハッシュを生成する、超高速な非暗号学的ハッシュのCライブラリ。

開発ツール#hash-function#checksum#non-cryptographic
1.1万+14 今週946COther活発にメンテナンス更新 9 日前