SQLite를 Nix에 몰래 들여오는 세 가지 방법

Three ways to smuggle SQLite into Nix

SQLite를 Nix에 몰래 들여오는 세 가지 방법

nixpkgs-multiverse는 Nixpkgs의 모든 버전을 인덱싱한 JSON 파일을 사용하지만, 파일이 커질수록 Nix의 eager 평가 방식 때문에 성능 문제가 발생합니다. 저자는 Nix의 기본 기능만으로는 SQLite를 사용할 수 없다는 점을 지적하며, `builtins.exec`, `builtins.importNative`, 그리고 거대한 Nix 파일을 이용하는 세 가지 우회 방법을 소개합니다. 각 방법의 장단점을 설명하고, 마지막으로 WebAssembly를 이용한 네 번째 방법도 간단히 언급합니다.

The moment you touch the result you have parsed all 5.3 MB and materialised all 305,492 values on the Nix heap.
  1. setheron

    질문이 있으시면, 몇 가지 답변을 드리도록 노력하겠습니다.

  2. kevincox

    데이터를 WASM 블롭에 그냥 컴파일해 넣을 수도 있을 것 같습니다. 그러면 sqlite보다 더 최적화된 쿼리 엔진을 사용할 수 있겠죠. 컴파일이 매우 빠를 것입니다 (대부분의 WASM은 그냥 바이트 버퍼이고, 코드는 이진 탐색 몇 번과 결과 인코딩 정도일 테니까요). 단점은 저장소를 업데이트하려면 다시 컴파일해야 한다는 점인데, 그렇게 비용이 많이 들지는 않을 것 같습니다.

  3. lsb

    이 정도 JSON(텍스트로 7.5MB)이 마이크로컨트롤러 메모리에 들어갈 수 있고 성능 문제라면, JSON 파서를 업그레이드하는 게 더 나을 수도 있지 않나요?

이 날의 다른 글

2026-08-21