Rust 1.90 revoluciona el desarrollo de proyectos a gran escala.

Publicado el lanzamiento del lenguaje de programación Rust 1.90. Sigue desarrollándose bajo la gestión de la fundación sin ánimo de lucro Rust Foundation, aunque fue creado originalmente en Mozilla. Rust se presenta como una herramienta para el trabajo seguro con la memoria y ofrece mecanismos para la ejecución paralela de tareas sin recurrir a un recolector de basura.
El control sobre la propiedad de los objetos, su ámbito y el acceso correcto a la memoria está integrado en el propio compilador. Este enfoque evita toda una clase de errores: desde desbordamientos de búfer y desreferencias de punteros nulos hasta accesos a áreas de memoria liberadas. Además, el lenguaje protege frente a desbordamientos enteros, exige la inicialización de variables antes de su uso, establece la inmutabilidad de los valores por defecto y aplica una tipificación estática estricta, lo que reduce el riesgo de fallos lógicos.
La herramienta clave del ecosistema sigue siendo el gestor de paquetes Cargo, a través del cual se gestionan compilaciones y dependencias. Para la publicación de bibliotecas se utiliza el repositorio crates.io. En la nueva versión se mejoró el mecanismo de publicación: el comando cargo publish recibió la opción --workspace, que permite publicar todos los paquetes de un espacio de trabajo en una sola acción respetando su orden y dependencias.
Entre las novedades técnicas destaca la transición en Linux sobre x86_64 al uso del enlazador LLD del proyecto LLVM para el enlace dinámico de paquetes crate. Esta decisión acelera la compilación de proyectos grandes, especialmente cuando se trabaja con gran cantidad de información de depuración, y también mejora notablemente la velocidad de recompilación incremental. Se mantiene la compatibilidad con el enlazador anterior BFD y, en caso de necesitar volver atrás, se puede usar la variable de entorno RUSTFLAGS con el parámetro «-C linker-features=-lld» o realizar cambios en el archivo .cargo/config.toml.
Un bloque completo de funciones y rasgos pasó a ser API estable. Ahora se admiten los métodos u{n}::checked_sub_signed, u{n}::overflowing_sub_signed, u{n}::saturating_sub_signed y u{n}::wrapping_sub_signed. Se estabilizaron las implementaciones de Copy y Hash para IntErrorKind, así como múltiples variantes de comparación para los tipos CStr, CString y Cow. Además, la palabra clave const se añadió a varias funciones de punto flotante, incluidas floor, ceil, trunc, fract y round tanto para f32 como para f64.
Los cambios afectaron también a las plataformas soportadas. Para varias plataformas objetivo basadas en la biblioteca musl, incluidas mips64-unknown-linux-muslabi64, powerpc64-unknown-linux-musl y riscv32gc-unknown-linux-musl, el enlace dinámico está habilitado por defecto. Al mismo tiempo, la plataforma x86_64-apple-darwin se degradó del primer nivel de soporte al segundo. Esto se relaciona con los planes de Apple de abandonar la arquitectura x86_64. Ahora se garantiza la posibilidad de compilación en macOS, pero no se ejecutará la batería completa de pruebas.
Un área de desarrollo aparte está vinculada a Windows. Microsoft impulsa un proyecto para crear un conjunto de bibliotecas para desarrollar controladores en Rust. En GitHub ya están disponibles paquetes crate para trabajar con WDM, KMDF y UMDF, así como para crear servicios Win32 compatibles con Windows 11. Actualmente las herramientas aún requieren llamadas unsafe para interactuar con componentes internos del sistema, pero en el futuro se planea añadir abstracciones que eviten el uso directo de código inseguro. El proyecto se distribuye bajo las licencias MIT y Apache 2.0.
Rust 1.90 refuerza la posición del lenguaje como herramienta orientada a un desarrollo seguro y a proyectos a gran escala. La combinación de nuevas capacidades de enlace, una biblioteca estándar ampliada y el movimiento hacia la programación de sistemas en Windows demuestra que el lenguaje continúa evolucionando activamente en distintos ecosistemas.