Заголовочная C++14-библиотека с lock-free очередями на кольцевых буферах для обмена сообщениями между потоками с минимальной задержкой от push до pop.
crossbeam-rs/crossbeam
Набор инструментов для конкурентного программирования на Rust: lock-free очереди, deques с work stealing, каналы, epoch-based GC, атомики и scoped-потоки.
- Звёзды
- 8,629
- Форки
- 589
- Открытые issues
- 173
- Последний коммит
- 23 дня назад
Что это?
Crossbeam — библиотека на Rust с базовыми инструментами для конкурентного программирования. В неё входят атомики, например AtomicCell, lock-free структуры данных, включая MPMC-очереди с ограниченной и неограниченной ёмкостью, deques с work stealing и сборщик мусора на основе эпох для безопасного освобождения памяти в конкурентных структурах.
Также библиотека включает каналы «многие производители — многие потребители» для обмена сообщениями, примитив для усыпления потоков, сегментированную блокировку чтения-записи, WaitGroup для синхронизации этапов вычислений и scoped-потоки, которые могут заимствовать локальные переменные из стека. Основной crate реэкспортирует инструменты из небольших субкрейтов, поэтому проекту достаточно зависеть от единого пакета crossbeam.
Многие компоненты можно использовать в no_std-среде; некоторым для этого нужен feature alloc. Минимальная поддерживаемая версия Rust — 1.74.
Ключевые возможности
- 01Lock-free MPMC-очереди с ограниченной и неограниченной ёмкостью (ArrayQueue, SegQueue)
- 02Deque с work stealing для построения планировщиков задач
- 03Каналы «многие производители — многие потребители» для обмена сообщениями
- 04Сборка мусора на основе эпох для конкурентных структур данных
- 05Атомики, усыпление потоков, сегментированная RwLock, WaitGroup и scoped-потоки
- 06Некоторые компоненты можно использовать в no_std-среде
Сценарии использования
- Построение многопоточного планировщика задач с deque и work stealing
- Обмен сообщениями между потоками через MPMC-каналы
- Использование очереди многими производителями и потребителями без блокировок
- Запуск потоков, которые заимствуют данные из текущего стекового фрейма
Быстрый старт
- 1
Добавьте crossbeam в качестве зависимости в Cargo.toml
- 2
Добавьте зависимость crossbeam с помощью Cargo
crossbeam = "0.8"
Что важно знать
- Минимальная поддерживаемая версия Rust — 1.74.
Темы
Частые вопросы
- Что такое crossbeam?
- Набор инструментов для конкурентного программирования на Rust: lock-free очереди, deques с work stealing, каналы, epoch-based GC, атомики и scoped-потоки. Crossbeam — библиотека на Rust с базовыми инструментами для конкурентного программирования. В неё входят атомики, например AtomicCell, lock-free структуры данных, включая MPMC-очереди с ограниченной и неограниченной ёмкостью, deques с work stealing и сборщик мусора на основе эпох для безопасного освобождения памяти в конкурентных структурах.
- crossbeam можно использовать бесплатно? Какая у него лицензия?
- crossbeam распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- crossbeam всё ещё поддерживается?
- Активно поддерживается. Последний коммит в crossbeam — 1 окт. 2026 г..
- Для чего можно использовать crossbeam?
- Построение многопоточного планировщика задач с deque и work stealing Обмен сообщениями между потоками через MPMC-каналы Использование очереди многими производителями и потребителями без блокировок Запуск потоков, которые заимствуют данные из текущего стекового фрейма
- Как установить crossbeam?
- Добавьте crossbeam в качестве зависимости в Cargo.toml Добавьте зависимость crossbeam с помощью Cargo: crossbeam = "0.8"
- Где скачать crossbeam?
- Исходный код и инструкции по установке — на GitHub: https://github.com/crossbeam-rs/crossbeam
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Библиотека для параллельной обработки данных в Rust: переводит последовательные итераторы в параллельные с минимальными изменениями API.
Ruby-гем с примитивами конкурентности: futures, promises, пулы потоков, агенты, атомы, потокобезопасные коллекции и средства синхронизации.
Синхронизация файлов с открытым исходным кодом в реальном времени: папки синхронизируются между двумя и более компьютерами без центрального сервера.
PyTorch-движок инференса для Diffusion Transformers (DiT), который ускоряет работу Diffusers за счёт кэширования, параллелизма, квантования и выгрузки на CPU.
Плагин для vLLM с оптимизациями инференса Snowflake — Shift Parallelism, speculative decoding и SwiftKV — для более быстрой и дешёвой работы с LLM и эмбеддингами.