Salió Rust 1.85: resumen de las novedades y mejoras clave

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

Salió Rust 1.85: qué cambió en el nuevo lanzamiento



El equipo de desarrolladores de Rust presentó otra actualización estable del lenguaje: la versión 1.85. Este lanzamiento trae una serie de funciones largamente esperadas que simplifican la escritura de código asíncrono, mejoran el rendimiento y amplían el conjunto de herramientas del desarrollador. Veamos los cambios clave.



Estabilización de async closures

Uno de los eventos principales fue la estabilización de async closures — clausuras que pueden ser asíncronas. Anteriormente, para devolver una clausura asíncrona era necesario escribir manualmente firmas complejas con impl Future. Ahora el compilador admite la sintaxis:

  • async || { ... } — declaración directa de una clausura asíncrona.
  • Cierre automático de variables con soporte para lifetime.
  • Compatibilidad con los traits FnOnce, FnMut y Fn.

Esto simplifica la escritura de manejadores de eventos asíncronos, middleware y funciones callback en frameworks web (por ejemplo, Axum o Actix).



Borrow checker mejorado

En Rust 1.85, el analizador de préstamos se ha mejorado significativamente. Ahora comprende mejor los casos en los que una variable se usa después de un movimiento parcial:

  • Se permite tomar prestados campos individuales de una estructura, incluso si otros campos ya se han movido.
  • Se ha mejorado el manejo de préstamos anidados en iteradores.
  • Se ha reducido la cantidad de advertencias falsas en código con construcciones condicionales.

Esto es especialmente útil al trabajar con estructuras de datos grandes donde se requiere propiedad parcial.



Nuevas capacidades de macros

El lanzamiento incluye una expansión del sistema de macros (proc macros):

  • Se agregó soporte para token streams con la capacidad de modificar posiciones en el código fuente.
  • Se simplificó la creación de macros de atributos para estructuras y enumeraciones.
  • Se mejoró el manejo de errores dentro de las macros: ahora los mensajes se muestran con la indicación exacta de la línea en el código del usuario.

Esto hará que el desarrollo de bibliotecas para serialización (serde), enrutamiento web y generación de código sea más flexible.



Optimización del compilador y mejoras en cargo

Los desarrolladores continuaron trabajando en el rendimiento de la compilación:

  • Se aceleró la compilación incremental para proyectos grandes (hasta un 15% más rápido).
  • En cargo check se agregó soporte para el análisis paralelo de dependencias.
  • En cargo build se mejoró el almacenamiento en caché de artefactos intermedios.

También en cargo apareció un nuevo comando cargo info, que muestra información detallada sobre un paquete del registro (versiones, dependencias, licencia) sin necesidad de descargarlo.



Correcciones de seguridad y estabilidad

En la versión 1.85 se cerraron varias vulnerabilidades relacionadas con el manejo de código inseguro (unsafe). Se corrigieron errores en la gestión de memoria al usar std::mem::transmute y MaybeUninit. El equipo de Rust recomienda a todos los usuarios actualizarse para garantizar la seguridad de sus proyectos.



Cómo actualizarse

La actualización está disponible a través del instalador oficial rustup. Para instalar la nueva versión, ejecute el comando:

Recommended Libraries