Об этом проекте

smolvm позволяет управлять и запускать пользовательские Linux-виртуальные машины локально с использованием аппаратной виртуализации (Hypervisor.framework на macOS, KVM на Linux, Windows Hypervisor Platform на Windows). Он построен на libkrun в качестве VMM и libkrunfw для гостевого ядра, при этом каждая рабочая нагрузка получает собственную ВМ и гостевое ядро для строгой изоляции. Ключевые возможности: - Быстрые кроссплатформенные микровиртуальные машины с холодным стартом менее 200 мс, эластичной памятью через virtio balloon и простаивающими потоками vCPU, которые спят в гипервизоре. - Smolfile: файл декларации в формате TOML (аналогично Dockerfile, но для целой ВМ), задающий образ, ресурсы, сетевую политику, монтирования, порты и команды настройки. Неизвестные ключи отклоняются во время создания. - Ветвление ВМ: живые копии-при-записи работающей машины, которые возобновляются с процессами, памятью и диском источника. Поддерживает пакетное ветвление с fan-out, сигнализацию готовности воркеров и удерживаемые слоты пула. - Портативные артефакты: упаковка остановленной ВМ в единый файл .smolmachine, который можно отправить в любой OCI-реестр и восстановить на любой поддерживаемой платформе без зависимостей. - Изоляция: сеть по умолчанию отключена; исходящий трафик можно ограничить определёнными разрешёнными хостами. Файловая система хоста, сеть и учётные данные разделены границей гипервизора. - Проброс SSH-агента: гость может использовать SSH-ключи хоста для git и SSH без копирования материала приватного ключа в ВМ. - Локальные образы контейнеров: загрузка из архивов docker save / podman save, stdin-каналов или распакованных каталогов rootfs без демона Docker. - Постоянные dev-машины: создание, остановка, запуск и exec в машины с установленными пакетами, переживающими перезапуски. Монтирования каталогов хоста распространяют события inotify для горячей перезагрузки. - Интеграция с Kubernetes: поставляется containerd shim v2, чтобы поды работали как микровиртуальные машины через RuntimeClass. - Ускорение GPU: предоставляет GPU хоста через virtio-gpu / Venus (Vulkan-over-virtio) на macOS и Linux. Удалённый вызов CUDA API (--cuda) перенаправляет вызовы CUDA через vsock к драйверу NVIDIA на хосте без проброса GPU. - Чекпоинтинг: сохранение состояния ВМ в виде долговечного артефакта .smolcheckpoint для последующего восстановления. Крейт Rust (smolvm-checkpoint) обеспечивает инкрементальное хранилище и портативный экспорт без зависимости от среды выполнения ВМ. Ресурсы по умолчанию — 4 vCPU и 8 GiB RAM, переопределяемые через флаги или Smolfile. Модель безопасности рассматривает гостевой root как недоверенный, а явно проброшенные возможности (монтирования, сеть, порты, SSH-агент) становятся частью полномочий рабочей нагрузки. Проект лицензирован под Apache-2.0.