Performance et mesures
Kiri revendique une exécution 8 × plus rapide que Docker Desktop. Un test simple montre docker run en 22 ms sur Kiri contre 178 ms sur Docker Desktop, 152 ms sur Colima et 279 ms sur OrbStack, chaque moteur limité à 2 CPU et 8 GB de RAM. Le même benchmark indique que le cycle complet d’un conteneur via l’API Docker dure 3,1 ms, le temps restant étant principalement l’initialisation du CLI Docker. Le démarrage à froid du VM sous‑jacent ne dépasse que 112 ms, contre 810 ms pour un noyau standard, et un appel vsock ne nécessite que 31 µs. Ces chiffres proviennent d’un Apple Silicon Mac, où la charge mémoire du daemon reste autour de 15 MB et le réveil du VM s’effectue en 0,15 s.
Architecture et fonctionnement
Kiri repose sur un unique daemon qui crée les espaces de noms, les cgroups et les montages pour chaque conteneur. Aucun processus persistant n’est conservé ; chaque conteneur possède un shim léger, ce qui contraste avec OrbStack où 143 shims occupent 1,13 GB. Le modèle « cinq sauts » décrit le flux : le CLI Docker contacte le daemon, qui utilise un canal vsock unique vers le VM, qui à son tour orchestre les opérations de création, d’exécution et de destruction. Cette chaîne minimise les changements de contexte et explique la latence réduite.
Le runtime fonctionne comme une VM unique hébergée sur le système hôte. Lorsque le système reste inactif pendant plus d’une minute, la VM entre en veille, libérant la mémoire inutilisée. Cette approche « light on your Mac » évite la surcharge de multiples VM parallèles, tout en conservant la compatibilité avec les images OCI, Docker Hub et les registres comme ghcr.io.
Fonctionnalités et intégrations
Kiri expose l’ensemble des outils Docker classiques : le CLI, Docker Compose, Buildx et l’API Docker Engine. Les utilisateurs peuvent ainsi lancer docker run --rm hello-world sans modification. En outre, Kiri ajoute des capacités absentes de Docker : chaque conteneur reçoit un nom DNS résolvable via web.kiri.localhost, un partage public instantané (kiri share 80) et la création d’un cluster k3s en ~20 s via kiri k8s start. Les machines Linux sont provisionnées avec kiri machine create dev --distro ubuntu, offrant un accès direct aux dossiers Mac.
Le client natif, développé avec AppKit/WebKit sur macOS, Win32/WebView2 sur Windows, évite les surcoûts d’Electron. L’interface regroupe logs, terminal, fichiers et statistiques en temps réel pour chaque conteneur, ainsi que la visualisation des couches d’image et un scan de vulnérabilités intégré grâce à BuildKit. La migration depuis OrbStack ou Docker Desktop est automatisée : images, volumes et conteneurs sont importés, puis le contexte Docker bascule vers Kiri.