スレッド間のメッセージ受け渡しを低レイテンシで実現する、ヘッダーのみのC++14製ロックフリー・リングバッファキュー。
crossbeam-rs/crossbeam
ロックフリーキュー、work-stealing deque、channel、epochベースのGC、atomic、scoped threadを備えたRustの並行処理ツール群。
- スター
- 8,628
- フォーク
- 589
- 未解決の Issue
- 173
- 最終コミット
- 23 日前
これは何?
Crossbeamは、並行プログラミングのための部品を提供するRustライブラリです。AtomicCellなどのatomic、bounded・unboundedのMPMCキューを含むロックフリーデータ構造、work-stealing deque、並行データ構造のメモリを安全に解放するためのepochベースのガベージコレクターを備えています。
さらに、メッセージパッシング用のmulti-producer multi-consumer channel、スレッドをparkするプリミティブ、sharded reader-writer lock、計算の区切りで同期するWaitGroup、スタック上のローカル変数を借用できるscoped threadも含まれています。メインのcrateは小さなサブcrateのツールを再エクスポートするため、プロジェクトはcrossbeamパッケージひとつに依存するだけで利用できます。
多くのコンポーネントはno_std環境で利用でき、一部ではalloc featureが必要です。サポート対象となるRustの最低バージョンは1.74です。
主な機能
- 01ロックフリーのbounded・unbounded MPMCキュー(ArrayQueue、SegQueue)
- 02タスクスケジューラー構築用のwork-stealing deque
- 03メッセージパッシング用のmulti-producer multi-consumer channel
- 04並行データ構造向けのepochベースのガベージコレクション
- 05atomic、スレッドのpark、sharded RwLock、WaitGroup、scoped thread
- 06複数のコンポーネントをno_std環境で利用可能
ユースケース
- work-stealing dequeを使ったマルチスレッドのタスクスケジューラーの構築
- MPMC channelを使ったスレッド間のメッセージ受け渡し
- ロックを使わずに複数のproducerとconsumerでキューを共有
- 現在のスタックフレームのデータを借用するスレッドの起動
クイックスタート
- 1
Cargo.toml に crossbeam を依存関係として追加する
- 2
Cargo で crossbeam の依存関係を追加する
crossbeam = "0.8"
使う前に知っておきたいこと
- サポート対象の最小 Rust バージョンは 1.74 です。
トピック
よくある質問
- crossbeam とは?
- ロックフリーキュー、work-stealing deque、channel、epochベースのGC、atomic、scoped threadを備えたRustの並行処理ツール群。 Crossbeamは、並行プログラミングのための部品を提供するRustライブラリです。AtomicCellなどのatomic、bounded・unboundedのMPMCキューを含むロックフリーデータ構造、work-stealing deque、並行データ構造のメモリを安全に解放するためのepochベースのガベージコレクターを備えています。
- crossbeam は無料で使えますか?ライセンスは?
- crossbeam は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- crossbeam は今もメンテナンスされていますか?
- 活発にメンテナンス中。crossbeam の最終コミットは 2026年10月1日 です。
- crossbeam は何に使えますか?
- work-stealing dequeを使ったマルチスレッドのタスクスケジューラーの構築 MPMC channelを使ったスレッド間のメッセージ受け渡し ロックを使わずに複数のproducerとconsumerでキューを共有 現在のスタックフレームのデータを借用するスレッドの起動
- crossbeam のインストール方法は?
- Cargo.toml に crossbeam を依存関係として追加する Cargo で crossbeam の依存関係を追加する: crossbeam = "0.8"
- crossbeam はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/crossbeam-rs/crossbeam
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
逐次イテレーターを、ほぼそのまま使えるAPIで並列化できるRust向けデータ並列処理ライブラリ。
future、promise、スレッドプール、agent、atom、スレッドセーフなコレクション、同期クラスなどの並行処理プリミティブを提供するRuby gem。
中央サーバーを介さず、2台以上のコンピューター間でフォルダーを同期し続けるオープンソースのファイル同期ツール。
Diffusersを基盤に、キャッシュ、並列化、量子化、CPUオフロードを追加するDiffusion Transformer(DiT)向けPyTorch推論エンジン。
vLLMにSnowflakeの推論最適化(Shift Parallelism、speculative decoding、SwiftKV)を追加し、LLMとembeddingのサービングを高速化・低コスト化するプラグイン。