El desarrollador Domen Kozar ha propuesto la creación de un nuevo enlace FFI —una interfaz que permite a un lenguaje llamar funciones escritas en otro— en Rust llamado extern "fil-c", diseñado para interoperar de forma segura con bibliotecas C y C++ compiladas mediante Fil-C, un compilador alternativo que añade verificaciones de memoria en tiempo de ejecución y recolección de basura concurrente. La propuesta plantea resolver uno de los puntos más delicados del ecosistema Rust: la dependencia histórica del lenguaje respecto a código C legado a través del FFI tradicional, donde se cruza una frontera unsafe —bloques de código en Rust donde el programador asume responsabilidad sobre la corrección de memoria— que ninguno de los dos lenguajes puede verificar de forma estricta.
En su publicación, Kozar explica que la primera versión del puente sería deliberadamente reducida: admitiría valores escalares, cadenas y slices copiados, y manejadores opacos. Generaría envoltorios seguros en Rust, compilaría el grafo completo de dependencias C con Fil-C y no ofrecería ninguna vía de escape hacia el C ordinario no seguro. El soporte de memoria compartida llegaría más adelante, una vez que el puente pueda entregar a Fil-C una capability —un token que autoriza el acceso a un recurso de memoria— que Rust pueda revocar de forma fiable.
Una pieza clave de la infraestructura ya está en marcha: filnix, un proyecto de Mikael Brockman que empaqueta Fil-C como plataforma de compilación cruzada para Nix y cuenta con ports de más de 100 paquetes de nixpkgs. Tratar Fil-C como una plataforma permite a Nix reconstruir el cierre transitivo de dependencias para el ABI —Application Binary Interface, el convenio que define cómo las funciones llaman y reciben datos a bajo nivel— de Fil-C en lugar de vincular accidentalmente código C ordinario.
El artículo también destaca que Zig avanza en paralelo. Su creador, Andrew Kelley, propuso un ABI opcional inspirado en Fil-C, pensado para compilar un programa Zig junto con todo su árbol de dependencias C y C++ con seguridad de memoria en tiempo de ejecución. Aunque se trata de una implementación independiente, el objetivo es estructuralmente similar al que requeriría un puente en Rust.
Según Kozar, la combinación de ambos enfoques generaría los incentivos correctos en el ecosistema: los desarrolladores podrían mantener las bibliotecas C existentes con garantías de seguridad de memoria, pero cada operación con punteros sería comprobada y su memoria participaría en el recolector de basura. Si una ruta crítica se reescribe en Rust, las comprobaciones se vuelven estáticas y la sobrecarga desaparece. C pasaría de ser el camino rápido permanente a ser la ruta de compatibilidad segura.
El autor aclara que el concepto de «100% seguro» se refiere a seguridad de memoria a través de toda la frontera soportada, no a la ausencia de errores lógicos, bloqueos o API mal diseñadas. Esa frontera es, precisamente, la parte más difícil del problema: Fil-C exige que el programa completo y todas sus dependencias usen su ABI, y el proyecto trata la interoperabilidad con C ordinario como un objetivo descartable.
La pieza cierra con una invitación a colaborar en OceanSprint, un evento previsto para el próximo año en Lanzarote, donde Kozar propone reunir a las comunidades de Rust, Fil-C, Zig y Nix para construir el puente de forma conjunta. Brockman, responsable de filnix, ya confirmó su participación.
Aunque ambas fuentes consultadas proceden del mismo artículo de Kozar —una en su versión original y otra a través de la Wayback Machine, el archivo que captura snapshots de páginas web—, su contenido es esencialmente idéntico y no presenta contradicciones relevantes para la redacción.
