Restaurar una micro-VM con Python ya arrancado cuesta unos 3 ms con hyperlight-unikraft, la última pieza de Hyperlight, el monitor de máquinas virtuales que es proyecto Sandbox de la CNCF. Hasta ahora, Hyperlight solo aceptaba invitados compilados para él. Ahora ejecuta el mismo binario de Python, Node.js, .NET, Java o Go que usas en Linux, sin SDK ni recompilación. El equipo lo presentó en el blog de la CNCF el 9 de noviembre de 2026.
Esto importa porque cada vez ejecutamos más código que no ha escrito nadie del equipo: el Python que genera un agente, los plugins de un cliente o una UDF que sube un usuario. Un sandbox de proceso arranca rápido, pero si el runtime o el kernel compartido tienen un fallo, el atacante llega al host. Una VM separa con el hipervisor, pero arrancarla lleva cientos de milisegundos. hyperlight-unikraft quiere dar el aislamiento de la VM con la latencia del proceso.
Qué hay dentro
Hyperlight es una librería en Rust (con SDK para Python y .NET) que tu aplicación enlaza, no un proceso VMM aparte. Usa KVM o MSHV en Linux, WHP en Windows e Hypervisor.framework en macOS con Apple silicon. La micro-VM no emula dispositivos: el invitado solo habla con el host a través de las funciones que el host le expone.
hyperlight-unikraft añade un kernel Unikraft como sistema invitado: un unikernel con un único espacio de direcciones y solo los componentes que necesita la aplicación. Encima monta un rootfs con el runtime (el de Python ocupa unos 14 MB) y un pequeño driver por lenguaje que deja el intérprete listo y esperando.
La clave es el snapshot. La primera ejecución arranca el invitado, inicializa el runtime y guarda su estado; las siguientes lo restauran en vez de arrancar. Con warm_exec puedes incluir en el snapshot las importaciones caras (import flask, pandas), que dejan de pagarse en cada llamada.
Las cifras del equipo (mediana, con el arranque del proceso incluido, hluk 0.20.1, en una VM de Azure de 8 vCPU con KVM anidado):
| Carga | hluk desde snapshot | Nativo |
|---|---|---|
| Python, hola mundo | 22 ms | 17 ms |
| Node.js, hola mundo | 39 ms | 22 ms |
| C# compilado con Roslyn dentro del invitado | 95 ms | 1.549 ms (dotnet run) |
| Python que importa numpy, pandas y scikit-learn | 45 ms | 1.119 ms |
En un hola mundo, la micro-VM es más lenta que el proceso nativo, y es lógico. La ventaja aparece cuando el runtime tarda en arrancar: ahí el snapshot evita trabajo que el proceso nativo repite en cada ejecución. En la misma máquina, ocho micro-VMs que compartían un snapshot de Python atendieron unas 850 llamadas por segundo entre todas.
Seguridad: nada por defecto
El invitado no ve ficheros del host ni tiene red hasta que se lo das: --mount abre un directorio, --net activa la red (con listas --net-allow y --net-block) y --port le deja escuchar. En la charla de WasmCon 2026, el equipo ejecutó un exploit de un fallo ya corregido de Wasmtime (CVE-2023-26489): directamente en el host, leía secretos del proceso; dentro de hyperlight-unikraft, solo alcanzaba la memoria de la micro-VM.
Cómo probarlo
El README propone un script de instalación. Es un curl | sh, así que léelo antes o usa la alternativa con Rust:
# Linux (KVM) o macOS con Apple silicon
curl -fsSL https://raw.githubusercontent.com/hyperlight-dev/hyperlight-unikraft/main/install.sh | sh
# o, con toolchain de Rust
cargo install hyperlight-unikraft
hluk init hello --template python # escribe hluk.toml y main.py, y descarga el rootfs
cd hello
hluk run # arranca el invitado y guarda el snapshot
hluk run # restaura el snapshot: milisegundoshluk templates lista el resto de plantillas: Node.js, Bash, C#, Java, PHP, PowerShell, programas compilados en Go, Rust o C, servidores HTTP sobre un rootfs ampliado con un Dockerfile y una imagen agent con numpy, pandas, scipy y scikit-learn precargados.
Donde más rápido se nota es en las integraciones ya publicadas en PyPI:
mcp-server-hyperlight: un servidor MCP con una herramientarun_pythonque conserva el estado entre llamadas. En Claude Code se añade conclaude mcp add hyperlight -- uvx mcp-server-hyperlight.smolagents-hyperlightyopenai-agents-hyperlight: ejecutan el código o los comandos de shell de un agente en una micro-VM sin red salvo que la permitas.clickhouse-hyperlight: UDF en Python para ClickHouse que restauran una micro-VM por bloque de filas en unos 1,5 ms.
Para Kubernetes, urunc ejecuta los invitados como contenedores OCI bajo containerd con una RuntimeClass, sin contenedores privilegiados.
Frente a Firecracker
La referencia en micro-VMs es Firecracker, el VMM que integran runtimes de contenedores como Kata Containers. Resuelven el mismo problema desde lados distintos:
| hyperlight-unikraft | Firecracker | |
|---|---|---|
| Modelo | Librería que enlaza tu aplicación | Proceso VMM con API REST |
| Invitado | Unikernel Unikraft + rootfs del runtime | Kernel Linux completo |
| Arranque | ~3 ms restaurando snapshot | Menos de 125 ms de arranque |
| Hosts | Linux, Windows y macOS (Apple silicon) | Linux con KVM |
| Madurez | Proyecto Sandbox de la CNCF; repo creado en mayo de 2026 | 37.900 estrellas; integrado en Kata Containers |
| Licencia | Apache 2.0 | Apache 2.0 |
Los 3 ms de uno y los 125 ms del otro no miden lo mismo: uno es restaurar un estado guardado y el otro, arrancar desde cero. La diferencia real está en el modelo. Firecracker te da una VM Linux completa con red y discos virtio, ideal para aislar cargas largas y multiinquilino. hyperlight-unikraft te da una función aislada que llamas desde tu código miles de veces, ideal para ejecutar fragmentos que no controlas.
La cautela que importa
El invitado no es Linux: es un unikernel que imita su interfaz. La documentación del manifiesto lo deja claro: los binarios tienen que ser PIE y no pueden hacer fork(). Cualquier programa o librería que se clone con fork() fallará donde en un contenedor funcionaría. Antes de meterlo delante de un agente en producción, prueba tus cargas reales con la imagen que vayas a usar, no un hola mundo. Además, las cifras de rendimiento son de una sola máquina con virtualización anidada.
Si ejecutas código generado por agentes en contenedores normales, mcp-server-hyperlight es la forma más barata de probar el aislamiento por hipervisor sin tocar tu arquitectura.
Fuentes
- Run Linux applications in hypervisor-isolated micro-VMs with Hyperlight, CNCF, 9 de noviembre de 2026.
- hyperlight-dev/hyperlight-unikraft, README.
- Projects and the manifest, documentación de hyperlight-unikraft.
- firecracker-microvm/firecracker, README.
- Firecracker, web del proyecto.