La empresa Encore ejecuta cada compilación de sus aplicaciones backend en Firecracker, un hipervisor de microVMs basado en KVM. Como KVM solo está disponible en hosts Linux y la mayoría de sus ingenieros desarrolla en Mac, durante cuatro años el sistema de compilación tuvo que residir en una máquina Linux remota accesible por SSH y Tailscale. Ese entorno funcionó, pero alargaba el ciclo de desarrollo: los puntos de interrupción locales nunca se disparaban, revisar logs requería tail por SSH y cada cambio en la imagen guest implicaba exportar capas Docker, transferirlas y reconstruir un squashfs en el host compartido.
Para llevar el sistema de compilación al Mac sin renunciar a Firecracker en producción, el equipo construyó crackling, un demonio y CLI que arranca imágenes OCI como microVMs Linux tanto en Linux (con Firecracker) como en macOS (con Virtualization.framework de Apple). El núcleo es independiente del hipervisor y se describe mediante MachineSpec; un trait compartido permite cambiar el backend y testear con uno en memoria. El artículo recorre el historial del workaround anterior —conversión manual de capas Docker a un dispositivo de bloque booteable, creación de un bridge docker0 dentro del contenedor, rsync cruzado— y explica la arquitectura de crackling, sus diferencias de capacidades entre backends y por qué las alternativas existentes (Apple container, Lima, Tart, podman con libkrun o KVM anidado en M3+) no cubrían el caso de unificar ambos hosts en una sola API.
