Colas lock-free de búfer circular, solo de cabeceras y compatibles con C++14, para pasar mensajes entre hilos con una latencia mínima entre inserción y extracción.
crossbeam-rs/crossbeam
Un crate de Rust con herramientas de concurrencia: colas lock-free, deques con robo de trabajo, canales, GC basado en épocas, atomics e hilos con ámbito.
- Estrellas
- 8,628
- Forks
- 589
- Issues abiertos
- 173
- Último commit
- hace 23 días
¿Qué es?
Crossbeam es una biblioteca de Rust con componentes básicos para la programación concurrente. Incluye atomics como AtomicCell, estructuras de datos lock-free, entre ellas colas MPMC acotadas y no acotadas, deques con robo de trabajo y un recolector de basura basado en épocas para liberar memoria de forma segura en estructuras concurrentes.
También incluye canales mult productor y mult consumidor para el paso de mensajes, una primitiva para estacionar hilos, un lock de lectura-escritura fragmentado, un WaitGroup para sincronizar límites entre cálculos e hilos con ámbito que pueden tomar prestadas variables locales de la pila. El crate principal reexporta herramientas de crates más pequeños, así que un proyecto puede depender del paquete crossbeam único.
Muchos de los componentes se pueden usar en entornos no_std; algunos requieren la característica alloc. La versión mínima de Rust admitida es la 1.74.
Funciones clave
- 01Colas MPMC lock-free acotadas y no acotadas (ArrayQueue, SegQueue)
- 02Deques con robo de trabajo para crear planificadores de tareas
- 03Canales multiproductor y multiconsumidor para el paso de mensajes
- 04Recolección de basura basada en épocas para estructuras de datos concurrentes
- 05Atomics, estacionamiento de hilos, RwLock fragmentado, WaitGroup e hilos con ámbito
- 06Varios componentes utilizables en entornos no_std
Casos de uso
- Crear un planificador de tareas multihilo con deques con robo de trabajo
- Pasar mensajes entre hilos mediante canales MPMC
- Compartir una cola entre muchos productores y consumidores sin usar locks
- Iniciar hilos que tomen prestados datos del marco de pila actual
Inicio rápido
- 1
Añade crossbeam como dependencia en Cargo.toml
- 2
Añade la dependencia crossbeam con Cargo
crossbeam = "0.8"
Antes de usarlo
- La versión mínima de Rust compatible es la 1.74.
Temas
Preguntas frecuentes
- ¿Qué es crossbeam?
- Un crate de Rust con herramientas de concurrencia: colas lock-free, deques con robo de trabajo, canales, GC basado en épocas, atomics e hilos con ámbito. Crossbeam es una biblioteca de Rust con componentes básicos para la programación concurrente. Incluye atomics como AtomicCell, estructuras de datos lock-free, entre ellas colas MPMC acotadas y no acotadas, deques con robo de trabajo y un recolector de basura basado en épocas para liberar memoria de forma segura en estructuras concurrentes.
- ¿crossbeam es gratuito? ¿Qué licencia tiene?
- crossbeam es open source bajo la licencia Apache-2.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿crossbeam sigue mantenido?
- Mantenimiento activo. El último commit de crossbeam fue el 1 oct 2026.
- ¿Para qué puedo usar crossbeam?
- Crear un planificador de tareas multihilo con deques con robo de trabajo Pasar mensajes entre hilos mediante canales MPMC Compartir una cola entre muchos productores y consumidores sin usar locks Iniciar hilos que tomen prestados datos del marco de pila actual
- ¿Cómo se instala crossbeam?
- Añade crossbeam como dependencia en Cargo.toml Añade la dependencia crossbeam con Cargo: crossbeam = "0.8"
- ¿Dónde consigo crossbeam?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/crossbeam-rs/crossbeam
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Una biblioteca de paralelismo de datos para Rust que convierte iteradores secuenciales en paralelos con cambios mínimos en la API.
Una gema de Ruby con primitivas de concurrencia como futures, promises, pools de hilos, agents, atoms, colecciones thread-safe y clases de sincronización.
Sincronización continua de archivos de código abierto que mantiene carpetas sincronizadas entre dos o más computadoras sin un servidor central.
Motor de inferencia para PyTorch de Diffusion Transformers (DiTs) que añade caching, paralelismo, cuantización y descarga a CPU sobre Diffusers.
Plugin para vLLM que incorpora optimizaciones de inferencia de Snowflake (Shift Parallelism, speculative decoding y SwiftKV) para servir LLM y embeddings de forma más rápida y económica.