trynix: запустите любой Nix-пакет прямо в браузере

Any Nix package, live in the browser

trynix: запустите любой Nix-пакет прямо в браузере

Проект trynix позволяет запускать любой из 310 083 версий пакетов nixpkgs в виртуальной Linux-машине, которая загружается прямо во вкладке браузера. Ничего не нужно устанавливать: достаточно указать пакет, и сайт сам найдёт нужный store path в публичных кэшах, включая cache.nixos.org. Более того, можно поделиться собственным store path — любой человек сможет запустить его у себя, даже если его нет в публичных кэшах. В основе лежат nixpkgs-multiverse для поиска версий, Linux-ядро в WebAssembly и хитрые трюки с предзагрузкой и снапшотами, чтобы ускорить загрузку. Автор видит в этом не просто демо, а новый способ ревьюить код, создавать артефакты для агентов и воспроизводить баги.

«Works on my machine» теперь — это просто URL для воспроизведения.
  1. yjftsjthsd-h

    > мы можем запустить ядро Linux в WebAssembly.

    На мгновение я подумал, что кто-то портировал Linux на wasm, но на самом деле это x86_64 Linux в qemu на wasm (с JIT, что, полагаю, размывает границы). Вероятно, это гораздо практичнее.

    ---

    Я в восторге от идеи использования этого для ревью кода / воспроизведения багов / туториалов / демо. Очевидно, что nix уже дает воспроизводимость, но запуск на любой хост-системе без настройки и с надежной песочницей действительно должен повысить его практическую полезность. Нативный nix не дает вам возможности "попробовать это ПО, кликнув по ссылке, и оно работает без установки чего-либо", а также "вот совершенно недоверенный код, который кто-то хочет, чтобы вы запустили, и это нормально, потому что он во вкладке браузера".

  2. easterncalculus

    Выглядит очень круто. Интересно, каким будет следующий шаг для производительности здесь. Попытка использовать python, как предложено, пока довольно медленная.

    ~ # time python3 hello.py

    Hello World!

    real 0m 5.48s

    user 0m 4.11s

    sys 0m 1.24s

  3. orangea

    > При первом запуске бинарника он транслируется из x86_64 в WebAssembly, и это занимает время.

    Если бинарник работает под настоящим x64 Linux ядром в qemu, не означает ли это, что бинарник никогда не транслируется в wasm?

Ещё за этот день

2026-09-06