
Farid Zakaria представил проект trynix.dev — сервис, который позволяет запустить любой Nix-пакет из истории nixpkgs за последние 13 лет прямо в браузере. Пользователю не нужно устанавливать Nix, Linux или какие-либо зависимости на хост-машину: достаточно открыть страницу, выбрать пакет и нажать «Load».
«Это моя magnum opus в работе с Nix», — написал Zakaria в своём блоге 4 сентября 2026 года.
Как это работает
В основе trynix.dev лежит qemu-wasm — порт эмулятора QEMU, скомпилированный в WebAssembly. Он запускает полноценную виртуальную машину x86_64 под управлением Linux прямо в браузерной вкладке. После загрузки пользователь получает интерактивную консоль, где на PATH уже находятся выбранные Nix-пакеты.
Ключевая инновация — использование «быстрого режима» из более раннего проекта nixmultiverse.com. Вместо того чтобы загружать и оценивать Nix-выражения (что требует времени и вычислительных ресурсов), сервис напрямую обращается к store path — готовому бинарному артефакту, который когда-то собрала Hydra (система непрерывной сборки Nix). Если бинар доступен в публичном кеше (cache.nixos.org, Cachix или GitHub Pages), виртуальная машина загружается за секунды.
«Сумасшедшая идея заключается в том, что мы не ограничены публичным кешем, — поясняет Zakaria. — Вы можете поделиться store path, который собрали сами, и любой сможет загрузить его в своей вкладке».
Для этого достаточно, чтобы кеш отдавал файлы с заголовком Access-Control-Allow-Origin: *, что GitHub Pages делает по умолчанию.
Что можно запустить
На момент запуска trynix.dev индексирует более 310 083 версий пакетов. Например, по ссылке https://trynix.dev/?pkg=python3%403.6.2 можно получить интерактивную оболочку с Python 3.6.2 от 2017 года. Сервис поддерживает одновременную загрузку нескольких пакетов и работу с пакетами, которых нет в публичном кеше (при условии, что store path доступен через HTTP с правильными CORS-заголовками).
Ограничения: виртуальная машина предоставляет только последовательную консоль — графического интерфейса нет. Поддерживаются только консольные программы.
trynix-preview: код-ревью через браузер
На основе trynix.dev Zakaria построил инструмент trynix-preview — GitHub Action, который при создании pull request автоматически комментирует ссылку. Перейдя по ней, можно загрузить сборку из PR в браузере и протестировать изменения без развёртывания на сервере.
«Никаких серверов, только браузеры», — описывает подход автор.
Что это значит для разработчиков
Для разработчиков, использующих Nix, trynix.dev решает несколько практических задач:
— Проверка исторических версий. Можно быстро запустить старую версию пакета, чтобы проверить совместимость или воспроизвести старую конфигурацию, не восстанавливая окружение локально.
— Код-ревью без развёртывания. trynix-preview позволяет тестировать изменения в изолированном окружении, не выделяя сервер и не загружая CI-раннеры.
— Демонстрация и обучение. Можно поделиться ссылкой на конкретный пакет, и получатель сразу увидит работающее окружение — без инструкций по установке.
— Проверка собственных сборок. Если store path собран и выложен в кеш с CORS, его можно протестировать в браузере, не загружая на целевую машину.
Технические детали и предостережения
Проект опирается на несколько предшествующих разработок Zakaria: nixpkgs-multiverse (индексация всех версий всех пакетов nixpkgs), grail (работа с диапазонами версий) и omniflake (добавление более 16 тысяч flakes из одного источника). В совокупности эти инструменты позволили создать единый индекс store path для всей истории nixpkgs.
Стоит отметить, что trynix.dev — это не замена полноценной Nix-установки. Виртуальная машина работает в браузере и не имеет доступа к локальной файловой системе, сети (кроме загрузки store path) или графическому выводу. Это инструмент для быстрой проверки и тестирования, а не для постоянной разработки.
Для разработчиков, которые хотят попробовать сервис, достаточно открыть trynix.dev, ввести имя пакета (например, hello или python3) и нажать Load. Через несколько секунд появится консоль с работающим окружением.