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.
