Nixパッケージをブラウザで実行——trynixが30万以上のバージョンを起動

Any Nix package, live in the browser

Nixパッケージをブラウザで実行——trynixが30万以上のバージョンを起動

trynixは、Nixパッケージをブラウザタブ内で実行できるツールです。nixpkgsの全履歴(31万以上のパッケージバージョン)から選んだパッケージを、WebAssembly上のLinuxカーネルで起動します。Hydraがビルドしたストアパスを直接取得する「fast-mode」を活用し、評価やビルドを省略。公開キャッシュに加え、CORSヘッダーを許可する任意のキャッシュ(GitHub Pagesなど)からストアパスを取得可能。パッケージの複数バージョンを同時に起動したり、実行中にストアパスを追加することもできます。作者はこれを「Nixのマグナム・オーパス」と呼び、PRレビューやエージェント成果物、再現可能なバグ報告などへの応用を提案しています。

「私のマシンでは動く」が、今や再現のためのURLになりました。
  1. yjftsjthsd-h

    > WebAssemblyでLinuxカーネルを実行できる。

    一瞬、誰かがLinuxをwasmに移植したのかと思ったが、実際にはwasmのqemu(JIT付き、確かに境界線は曖昧になるが)で動くx86_64 Linuxだ。おそらくその方がずっと実用的だろう。

    ---

    これをコードレビューやバグの再現、チュートリアル、デモに使えるというアイデアに興奮している。もちろん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に変換されるため時間がかかる。

    もしバイナリがqemuで動く実際のx64 Linuxカーネル上で実行されているなら、バイナリがwasmに変換されることは決してないということにならないか?

この日のほかの記事

2026-09-06