Nixpkgs 전체를 TypeScript로 옮긴 사람, 23만 개 속성의 drvPath가 Nix와 완전히 일치

Nixpkgs for the Front End Impaired

Nixpkgs 전체를 TypeScript로 옮긴 사람, 23만 개 속성의 drvPath가 Nix와 완전히 일치

Nix의 진짜 마법은 언어가 아니라 스토어 모델이라는 관점에서, 저자는 .nix 파일을 동일한 thunk와 drvPath를 내는 TypeScript로 변환하는 jinx를 만들었다. nixpkgs의 231,777개 속성을 컴파일했고, x86_64-linux 등 세 플랫폼에서 229,063개가 Nix와 똑같은 drvPath를 냈으며 차이는 0건이었다. 평가 속도는 3~5배 느리지만, 에디터 자동완성·소스맵 디버깅·node:test 단위 테스트·브라우저 실행 등 TypeScript 생태계의 도구를 nixpkgs에 그대로 쓸 수 있게 한다.

Nix 언어 자체는 작은 지연 함수형 언어에 derivation 프리미티브를 얹은 것이라 주말이면 다른 걸 설계할 수 있지만, 주말에 설계할 수 없는 것은 nixpkgs다. 20년간의 수정, 모든 크로스 컴파일 우회, 모든 stdenv 단계, 모든 패치된 configure 스크립트, 누군가 이미 해결해 둔 '이 라이브러리는 aarch64-darwin에서 이 플래그가 필요하다'까지 담겨 있다.

이 날의 다른 글

2026-10-29