· 3 min de lectura · Por Grover Cordova

Cómo adoptar Rust en un sistema C++ existente

Una estrategia gradual: escribe el código nuevo en Rust, aísla las zonas de mayor riesgo y conecta ambos mundos con cuidado.

Reescribir un sistema grande de C++ de una sola vez es arriesgado y rara vez es necesario. Una estrategia gradual reduce el riesgo desde la primera entrega.

Empieza por el código nuevo

Google observó en Android que las vulnerabilidades de memoria se concentran en el código nuevo. Por eso, escribir las funciones nuevas en un lenguaje seguro en memoria puede aportar mucho sin tocar el código antiguo y ya probado.

Prioriza por exposición

No todo el código tiene el mismo riesgo. Empieza por lo que recibe datos no confiables: parsers, decodificadores, protocolos de red y límites entre procesos.

Elige cómo conectar ambos lenguajes

C++código existentecxxRustcódigo nuevo
Una frontera pequeña y clara: es lo único que ambos lados deben acordar.
  • cxx genera puentes seguros entre Rust y C++ a partir de una interfaz declarada.
  • bindgen genera enlaces a partir de cabeceras C y C++, lo que suele ser útil con APIs amplias.
  • Una frontera C explícita es más manual, pero también más estable y fácil de auditar.

Mantén la frontera pequeña y bien definida. Cada cruce es código unsafe que hay que revisar.

Envuelve lo inseguro

Encierra el código unsafe en módulos pequeños que expongan una interfaz segura, y documenta qué condiciones debe cumplir cada bloque.

Rust no elimina todo el riesgo. Google informó de un desbordamiento de búfer en código Rust unsafe de Android (CVE-2025-48530), detectado antes de llegar a una versión pública.

Integra la construcción

Define desde el inicio cómo convivirán CMake o Bazel con Cargo, cómo se ejecutarán las pruebas de ambos lenguajes y cómo se gestionarán las dependencias. Muchos retrasos vienen de aquí, no del lenguaje.

Mide el avance

Registra vulnerabilidades, reversiones y tiempo de revisión antes y después. Esos datos permiten decidir si conviene ampliar la adopción.

Construye mejor software.

Seguridad, eficiencia y oficio, con fuentes y en español.