Repolode
rayon-rs

rayon-rs/rayon

Una biblioteca de paralelismo de datos para Rust que convierte iteradores secuenciales en paralelos con cambios mínimos en la API.

Estrellas
13,399
Forks
618
Issues abiertos
233
Último commit
hace 2 meses

¿Qué es?

Rayon es una biblioteca de paralelismo de datos para Rust. Su interfaz principal, el iterador paralelo, permite convertir un cálculo secuencial en uno paralelo cambiando una llamada como iter() por par_iter(). Luego, Rayon decide cómo dividir el trabajo en tareas y ajusta esa división para maximizar el rendimiento.

Para tener más control, Rayon ofrece las funciones join y scope para crear tareas paralelas manualmente, además de pools de hilos personalizados como alternativa al pool global predeterminado. Sus API están diseñadas para garantizar la ausencia de carreras de datos, por lo que el código que compila generalmente se comporta como en su versión secuencial. Los iteradores paralelos producen los mismos resultados que sus equivalentes secuenciales, con la salvedad de que los efectos secundarios, como enviar datos por canales o escribir en disco, pueden producirse en otro orden.

Rayon se publica en crates.io y requiere rustc 1.85 o posterior. En WebAssembly, de forma predeterminada recurre a la iteración secuencial; para usar varios hilos se necesita un adaptador como wasm-bindgen-rayon.

Funciones clave

  • 01Convierte iteradores secuenciales en paralelos con un cambio mínimo, como pasar de iter() a par_iter().
  • 02Ofrece las funciones join y scope para crear tareas paralelas manualmente.
  • 03Admite pools de hilos personalizados, además del pool global predeterminado.
  • 04Está diseñada para garantizar, desde el nivel de la API, la ausencia de carreras de datos.
  • 05Ofrece versiones paralelas alternativas de algunos métodos de los iteradores secuenciales.

Casos de uso

  • Acelerar bucles con uso intensivo de CPU sobre colecciones grandes en aplicaciones Rust.
  • Paralelizar transformaciones de datos como map, filter y sum sobre slices o vectores.
  • Crear cargas de trabajo con paralelismo de tareas mediante join, scope o pools de hilos dedicados.
  • Ejecutar código Rust con varios hilos en el navegador mediante wasm-bindgen-rayon.

Inicio rápido

  1. 1

    Añade Rayon a las dependencias de Cargo.toml

    [dependencies] rayon = "1.12"
  2. 2

    Importa los traits de iteradores paralelos en cada módulo

    use rayon::prelude::*;
  3. 3

    Cambia foo.iter() por foo.par_iter() para ejecutar el iterador en paralelo

Antes de usarlo

  • Requiere rustc 1.85.0 o una versión posterior.
  • En WebAssembly, se recurre a la iteración secuencial, a menos que añadas el adaptador wasm-bindgen-rayon por separado y su configuración.

Temas

Preguntas frecuentes

¿Qué es rayon?
Una biblioteca de paralelismo de datos para Rust que convierte iteradores secuenciales en paralelos con cambios mínimos en la API. Rayon es una biblioteca de paralelismo de datos para Rust. Su interfaz principal, el iterador paralelo, permite convertir un cálculo secuencial en uno paralelo cambiando una llamada como iter() por par_iter(). Luego, Rayon decide cómo dividir el trabajo en tareas y ajusta esa división para maximizar el rendimiento.
¿rayon es gratuito? ¿Qué licencia tiene?
rayon es open source bajo la licencia Apache-2.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿rayon sigue mantenido?
Actualizado en los últimos 6 meses. El último commit de rayon fue el 28 ago 2026.
¿Para qué puedo usar rayon?
Acelerar bucles con uso intensivo de CPU sobre colecciones grandes en aplicaciones Rust. Paralelizar transformaciones de datos como map, filter y sum sobre slices o vectores. Crear cargas de trabajo con paralelismo de tareas mediante join, scope o pools de hilos dedicados. Ejecutar código Rust con varios hilos en el navegador mediante wasm-bindgen-rayon.
¿Cómo se instala rayon?
Añade Rayon a las dependencias de Cargo.toml: [dependencies] rayon = "1.12" Importa los traits de iteradores paralelos en cada módulo: use rayon::prelude::*; Cambia foo.iter() por foo.par_iter() para ejecutar el iterador en paralelo
¿Dónde consigo rayon?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/rayon-rs/rayon

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados