trynix: 31만 개의 Nix 패키지를 브라우저 탭에서 실행하다
Any Nix package, live in the browser

fzakaria.com의 저자가 Nix 패키지의 모든 버전을 브라우저에서 실행할 수 있는 trynix.dev를 공개했습니다. 이 도구는 WebAssembly로 부팅되는 Linux VM과 메모리 내 Nix 스토어를 사용하며, nixpkgs-multiverse의 'fast-mode'를 활용해 평가 없이 정확한 스토어 경로를 가져옵니다. 사용자는 310,083개의 패키지 버전을 검색하고 즉시 실행할 수 있으며, 직접 빌드한 스토어 경로도 CORS를 허용하는 캐시(예: GitHub Pages)를 통해 공유할 수 있습니다. 저자는 이를 코드 리뷰, 에이전트 아티팩트, 재현 가능한 버그 리포트, 실행 가능한 문서, 고고학적 탐구 등에 활용할 수 있다고 제안합니다.
이것은 cache.nixos.org에는 존재하지 않는 스토어 경로인데도 브라우저 탭에서 부팅됩니다.
HN 토론
20- yjftsjthsd-h
> 우리는 WebAssembly에서 Linux 커널을 실행할 수 있습니다.
잠시 누군가 Linux를 wasm으로 포팅한 줄 알았는데, 실제로는 wasm qemu 안에서 돌아가는 x86_64 Linux입니다(JIT를 사용한다고 하지만, 그 경계가 모호해지긴 하죠). 아마 훨씬 더 실용적일 겁니다.
---
코드 리뷰/버그 재현/튜토리얼/데모에 이걸 사용할 수 있다는 생각에 정말 신납니다. 물론 Nix는 이미 재현성 측면을 제공하지만, 설치 없이 제로 셋업으로 어떤 호스트 시스템에서든 실행되고 강력한 샌드박싱을 제공한다는 점이 실제 유용성을 크게 높여줄 겁니다. 네이티브 Nix는 "링크를 클릭하면 아무것도 설치하지 않고 소프트웨어를 사용해볼 수 있다"거나 "완전히 신뢰할 수 없는 코드를 실행해보라고 할 때, 브라우저 탭 안이니까 괜찮다"는 경험을 주지 못합니다.
- easterncalculus
정말 멋져 보입니다. 여기서 성능 측면의 다음 단계가 무엇일지 궁금하네요. 제안된 대로 Python을 실행해보니 아직까지는 꽤 느리네요.
~ # time python3 hello.py
Hello World!
real 0m 5.48s
user 0m 4.11s
sys 0m 1.24s
- orangea
> 바이너리를 처음 실행할 때 x86_64에서 WebAssembly로 변환되며 시간이 걸립니다.
바이너리가 qemu에서 실행되는 실제 x64 Linux 커널 아래에서 실행된다면, 바이너리가 wasm으로 변환되지 않는다는 뜻이 아닌가요?