핵심 요약
- Nix 코드를 타입스크립트(TypeScript) 코드로 변환해 주는 트랜스파일러 'jinx'가 공개되었습니다.
- 20년 동안 축적된 23만 개 이상의 nixpkgs 속성을 변환하여 기존 Nix와 완전히 동일한 빌드 경로(drvPath)를 생성하는 데 성공했습니다.
- 실행 속도는 다소 느려지지만 크롬 개발자 도구 디버깅이나 브라우저 내 즉시 평가, 풍부한 타입스크립트 자동 완성 환경을 누릴 수 있습니다.
요약 Nix 생태계의 핵심 강점은 언어 자체보다도 지난 20년간 수많은 개발자들이 온갖 크로스 컴파일 예외 처리와 패치를 누적해 온 거대한 패키지 저장소 'nixpkgs'에 있습니다. 하지만 Nix의 저장소 모델(store model)을 활용해 새로운 도구나 환경을 시도하려는 개발자들은 매번 방대한 nixpkgs를 포기하고 처음부터 다시 패키지를 쌓아야 하는 한계에 부딪혀 왔습니다.
한 해외 개발자가 이러한 문제를 해결하기 위해 Nix 코드를 타입스크립트(TypeScript)로 트랜스파일하는 도구인 'jinx'를 공개했습니다. 웹 브라우저 지원과 강력한 타입 시스템, 풍부한 개발 도구 생태계를 갖춘 타입스크립트를 활용해 Nix의 지연 평가(lazy evaluation)와 파생(derivation) 구조를 그대로 옮겨온 것입니다. jinx를 통해 총 23만 1,777개에 달하는 nixpkgs 전체 속성을 컴파일한 결과, 오류가 발생하는 예외 속성을 제외하고 완벽하게 일치하는 drvPath 결과물을 뽑아내는 데 성공했습니다.
타입스크립트로 Nix를 평가하면 실행 속도는 3~5배가량 느려지지만, 개발자는 VS Code나 크롬 개발자 도구에서 소스 맵을 기반으로 Nix 코드를 브레이크포인트로 디버깅하거나, 타입스크립트 언어 서버 프로토콜을 통해 강력한 자동 완성을 활용할 수 있게 됩니다. 나아가 브라우저 탭에서 Nix를 전혀 설치하지 않고도 패키지를 평가해보는 등 기존 Nix 생태계의 패키지 자산을 다른 생태계로 확장하는 흥미로운 실험으로 평가받고 있습니다.
Sponsored · 광고