Repolode
crossbeam-rs

crossbeam-rs/crossbeam

Uma crate Rust com ferramentas de concorrência: filas lock-free, deques com roubo de trabalho, canais, GC baseado em epochs, atomics e threads com escopo.

Estrelas
8,628
Forks
589
Issues abertas
173
Último commit
há 23 dias

O que é?

Crossbeam é uma biblioteca Rust com componentes básicos para programação concorrente. Ela inclui atomics como AtomicCell, estruturas de dados lock-free, como filas MPMC limitadas e ilimitadas, deques com roubo de trabalho e um garbage collector baseado em epochs para liberar memória com segurança em estruturas concorrentes.

Também inclui canais multi-producer multi-consumer para troca de mensagens, uma primitiva para estacionar threads, um lock de leitura e escrita particionado, um WaitGroup para sincronizar etapas de computação e threads com escopo que podem pegar variáveis locais da stack emprestadas. A crate principal reexporta ferramentas de subcrates menores, permitindo que um projeto dependa apenas do pacote crossbeam.

Muitos componentes podem ser usados em ambientes no_std, embora alguns exijam o recurso alloc. A versão mínima do Rust compatível é a 1.74.

Recursos principais

  • 01Filas MPMC lock-free limitadas e ilimitadas (ArrayQueue, SegQueue)
  • 02Deques com roubo de trabalho para criar escalonadores de tarefas
  • 03Canais multi-producer multi-consumer para troca de mensagens
  • 04Garbage collection baseado em epochs para estruturas de dados concorrentes
  • 05Atomics, estacionamento de threads, RwLock particionado, WaitGroup e threads com escopo
  • 06Vários componentes podem ser usados em ambientes no_std

Casos de uso

  • Criar um escalonador de tarefas multithreaded com deques que usam roubo de trabalho
  • Trocar mensagens entre threads com canais MPMC
  • Compartilhar uma fila entre vários produtores e consumidores sem locks
  • Criar threads que pegam dados emprestados do frame de stack atual

Início rápido

  1. 1

    Adicione crossbeam como dependência no Cargo.toml

  2. 2

    Adicione a dependência crossbeam com o Cargo

    crossbeam = "0.8"

Antes de usar

  • A versão mínima compatível do Rust é a 1.74.

Tópicos

Perguntas frequentes

O que é crossbeam?
Uma crate Rust com ferramentas de concorrência: filas lock-free, deques com roubo de trabalho, canais, GC baseado em epochs, atomics e threads com escopo. Crossbeam é uma biblioteca Rust com componentes básicos para programação concorrente. Ela inclui atomics como AtomicCell, estruturas de dados lock-free, como filas MPMC limitadas e ilimitadas, deques com roubo de trabalho e um garbage collector baseado em epochs para liberar memória com segurança em estruturas concorrentes.
crossbeam é gratuito? Qual é a licença?
crossbeam é open source sob a licença Apache-2.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
crossbeam ainda é mantido?
Manutenção ativa. O último commit de crossbeam foi em 1 de out. de 2026.
Para que posso usar crossbeam?
Criar um escalonador de tarefas multithreaded com deques que usam roubo de trabalho Trocar mensagens entre threads com canais MPMC Compartilhar uma fila entre vários produtores e consumidores sem locks Criar threads que pegam dados emprestados do frame de stack atual
Como instalar crossbeam?
Adicione crossbeam como dependência no Cargo.toml Adicione a dependência crossbeam com o Cargo: crossbeam = "0.8"
Onde consigo crossbeam?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/crossbeam-rs/crossbeam

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados