Lanzamiento de Rust 1.80: resumen de cambios clave y novedades

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Lanzamiento de Rust 1.80: resumen de cambios clave y novedades



El equipo de desarrolladores de Rust presentó otro lanzamiento estable: la versión 1.80.0. Esta actualización trae varias funciones largamente esperadas, estabiliza una serie de API y mejora la experiencia del usuario. Analicemos qué ha cambiado y cómo estas novedades afectarán el desarrollo.



Estabilización de LazyCell y LazyLock

Quizás la novedad más notable es la estabilización de los tipos LazyCell y LazyLock. Anteriormente, para la inicialización diferida de datos era necesario usar crates de terceros (por ejemplo, once_cell) o construcciones complejas.

  • LazyCell — inicialización diferida no bloqueante para contexto de un solo hilo. Permite retrasar la creación de un valor hasta el primer acceso.
  • LazyLock — versión segura para hilos, que utiliza un mutex para sincronizar el acceso. Ideal para configuraciones globales y singletons.

Ambos tipos implementan los traits Deref y DerefMut, lo que los hace cómodos de usar. Ahora la biblioteca estándar cubre los escenarios más comunes de inicialización diferida.



Estabilización de API: Exclusive y otras

En la versión 1.80 se ha estabilizado una serie de nuevas API:

  • Exclusive — envoltorio para acceso exclusivo a un valor. Permite trabajar de forma segura con tipos no-Send en contexto asíncrono, proporcionando acceso síncrono a través de un closure.
  • Métodos BorrowedBuf::as_slice y BorrowedCursor::as_slice — simplifican el trabajo con búferes de entrada/salida.
  • HashMap::extract_if y HashSet::extract_if — iteradores que permiten eliminar elementos de una colección según un predicado, tomando posesión de ellos.


Mejoras del compilador

El equipo de Rust continúa trabajando en la retroalimentación del compilador. En 1.80 se han mejorado los mensajes de error para el uso incorrecto de traits y lifetimes. Ahora el compilador ofrece sugerencias más precisas, lo que es especialmente útil para principiantes.

  • Diagnósticos mejorados para errores relacionados con tipos que implementan Drop.
  • Mensajes más claros en conflictos de importaciones.
  • Optimización del tiempo de compilación para proyectos que usan macros.


¿Qué significa esto para los desarrolladores?

Se recomienda la actualización a Rust 1.80 para todos los que usan activamente la inicialización diferida o trabajan con código asíncrono. La estabilización de LazyLock permite prescindir de dependencias externas, simplificando la compilación y aumentando la seguridad. Los nuevos métodos para colecciones hacen que el código sea más idiomático, y la mejora en los diagnósticos del compilador acelera la depuración.



Para los usuarios de PythonLib que están aprendiendo Rust o lo usan junto con Python (por ejemplo, a través de PyO3), esta actualización también es importante: las API estables y el rendimiento mejorado del compilador hacen que Rust sea aún más atractivo para la programación de sistemas y servicios de alta carga.



La lista completa de cambios está disponible en las notas oficiales del lanzamiento. Puede actualizar Rust con el comando rustup update stable.

Recommended Libraries