C++ ahora es compatible oficialmente con una nueva plataforma: qué significa para los desarrolladores

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

C++ ahora es compatible oficialmente con WASI: una nueva etapa en el desarrollo multiplataforma



El comité de estandarización del lenguaje C++ (ISO/IEC JTC1/SC22/WG21), en conjunto con el grupo de desarrolladores de LLVM y el proyecto WebAssembly, anunciaron un evento largamente esperado: el lenguaje C++ ha obtenido compatibilidad oficial y documentada con la plataforma WebAssembly System Interface (WASI). Esto significa que ahora los desarrolladores pueden escribir código de sistema en C++ que funcionará no solo en sistemas operativos tradicionales (Windows, Linux, macOS), sino también en el entorno de WebAssembly fuera del navegador: en servidores, dispositivos IoT y sistemas edge en la nube.



¿Qué es WASI y por qué es importante para C++?



WASI (WebAssembly System Interface) es una interfaz de sistema estandarizada que proporciona a los módulos de WebAssembly acceso al sistema de archivos, sockets de red, tiempo y otros recursos del sistema operativo. Anteriormente, C++ podía compilarse a WebAssembly, pero la interacción con el mundo exterior estaba limitada al entorno del navegador. Ahora, con la compatibilidad oficial con WASI, C++ obtiene un entorno aislado completo para la ejecución segura de código fuera del navegador.



  • Seguridad: Los módulos de C++ se ejecutan en una sandbox con control de acceso a los recursos, ideal para servicios multiusuario.
  • Portabilidad: Un único archivo binario .wasm funciona en cualquier sistema operativo que tenga un entorno de ejecución WASI (Wasmer, Wasmtime, WAMR).
  • Rendimiento: La compilación de C++ directamente a código nativo de WebAssembly (a través de Clang/LLVM) proporciona una velocidad de ejecución casi nativa, sin la sobrecarga de una máquina virtual.


¿Qué ha cambiado en el ecosistema de C++?



La principal novedad es la aparición de una guía oficial para portar código C++ a WASI y la inclusión de la compatibilidad con WASI en el repositorio principal de LLVM. Ahora, cualquier proyecto en C++ puede compilarse para WASI con una simple bandera del compilador:



clang++ --target=wasm32-wasi -O3 my_program.cpp -o my_program.wasm



Además, las bibliotecas estándar de C++ (libc++, libc++abi) se han actualizado para funcionar correctamente con las llamadas al sistema de WASI. Los desarrolladores ya no necesitan configurar manualmente el enlace con bibliotecas externas: todo funciona "listo para usar".



¿Dónde se aplica esto ya?



  • Computación en la nube: Ejecución de microservicios en C++ en contenedores WASI aislados (por ejemplo, en Fastly Compute@Edge o Cloudflare Workers con compatibilidad con WASI).
  • Sistemas embebidos: Uso de WASI para la actualización segura de firmware de dispositivos IoT escritos en C++.
  • Cálculos científicos: Traslado de módulos de C++ con alta carga computacional (bibliotecas de álgebra lineal, simulaciones) a WASI para ejecución multiplataforma sin recompilación.


¿Qué sigue?



Los planes inmediatos incluyen la compatibilidad total con la multitarea de C++ en WASI (actualmente solo está disponible el modelo de un solo hilo) y la integración con las corrutinas de C++20/23. La comunidad ya está trabajando en la adaptación de bibliotecas populares (Boost, Qt, OpenCV) para su compilación en WASI. Siga las actualizaciones en el sitio web oficial wasi.dev y en el repositorio de LLVM.



Si escribe en C++ y desea

Recommended Libraries