RAPx: plataforma de análisis estático para Rust con verificación formal

Fuentes: RAPx: a static analysis platform for Rust with formal verification

RAPx (Rust Analysis Platform with Extensions) es una plataforma avanzada de análisis estático para programas escritos en Rust. Ofrece un marco extensible que va más allá del compilador rustc estándar y permite a las desarrolladoras razonar con mayor profundidad sobre seguridad, robustez y rendimiento del código, en un contexto donde Rust se usa cada vez más en sistemas críticos y en código generado por asistentes de IA.

La arquitectura se divide en dos capas: un núcleo con algoritmos esenciales de análisis de programas (como análisis de alias y de flujo de datos) y una capa de aplicación que implementa tareas concretas como detección de errores u optimización. Esta separación facilita el desarrollo modular y la colaboración entre quienes trabajan en los algoritmos y quienes construyen herramientas encima.

En la práctica, RAPx se integra con cargo mediante el subcomando cargo rapx, con cuatro áreas principales: analyze (alias, grafos de llamadas, flujo de datos, análisis de rangos, CFG sensible a rutas), check (detección de use-after-free, double-free y fugas de memoria), opt (oportunidades de optimización) y verify (verificación basada en contratos con resolución SMT mediante Z3, capaz de emitir veredictos SOUND/UNSOUND). Soporta anotaciones como #[rapx::verify], #[rapx::requires] e #[rapx::invariant] para expresar propiedades de seguridad (Align, NonNull, Allocated, InBound, Init, ValidPtr, Deref, Ptr2Ref).

El proyecto se encuentra en desarrollo activo, se distribuye en crates.io y se instala con rustup nightly y cargo +nightly install rapx. La documentación completa está disponible en el RAPx-Book.