Kakehashi es una herramienta de código abierto escrita en Rust que permite ejecutar binarios de macOS ARM64 (Darwin) sobre Linux aarch64 sin necesidad de emulación completa ni JIT. Funciona como una capa de traducción en espacio de usuario: carga archivos Mach-O, mapea una versión libSystem independiente (freestanding) y traduce las llamadas al sistema BSD para que los programas invitados se ejecuten de forma nativa en la CPU. El proyecto se instala con cargo install kakehashi y ofrece comandos como kh install 7zip o kh install curl para desplegar binarios Darwin (7zz, curl) dentro del entorno invitado, y kh run para ejecutarlos.
Entre los invitados ya verificados se encuentran sondas de clang, 7-Zip en modo multihilo y curl con soporte HTTP y HTTPS. El proyecto ha sido probado en contenedores Docker/Colima, en máquinas virtuales UTM y en hardware Linux aarch64 desnudo, incluyendo sistemas con páginas de 4 KiB y de 16 KiB (como Asahi).
En pruebas de compresión con 7zz (-t7z -m0=lzma2 -mx=5 -mmt=4, unos 8 000 archivos y 240 MiB) en un equipo Ubuntu aarch64 bajo UTM, la ejecución nativa en Linux tardó unos 22,5 s frente a 118 s bajo Kakehashi, una diferencia de aproximadamente 5,2 veces. En cargas con menos archivos la penalización se reduce a alrededor de 1,1–1,2 veces. La ralentización se concentra en la frontera de las llamadas al sistema y en el recorrido de rutas, no en la decodificación de instrucciones.
El objetivo principal del proyecto es abaratar la integración continua: los runners macOS de GitHub Actions cuestan entre 0,062 y 0,102 USD por minuto, frente a 0,005 USD de los runners Linux ARM64, por lo que, aun siendo más lento, Kakehashi puede resultar más económico para flujos puramente CLI. Todavía no soporta GUI, codesign, frameworks de Apple como Security completo ni HTTP/3 extremo a extremo; esos frentes se detallan en la hoja de ruta del repositorio.
