Repolode
crossbeam-rs

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. 1

    Добавьте crossbeam в качестве зависимости в Cargo.toml

  2. 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 обновляется ежедневно.

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

Синхронизация файлов с открытым исходным кодом в реальном времени: папки синхронизируются между двумя и более компьютерами без центрального сервера.

89,7 тыс.+35 за неделю5,5 тыс.GoMPL-2.0Обновлён 22 часа назад