HeadlinesBriefing favicon HeadlinesBriefing.com

Três Maneiras de Contrabandear SQLite para o Nix

Hacker News •
×

O projeto nixpkgs-multiverse usa índices JSON (versions.json com 5,3 MiB, history.json com 7,5 MiB) cobrindo 305.492 versões de pacotes em 31.904 pacotes. O builtins.fromJSON do Nix analisa arquivos inteiros avidamente, fazendo com que buscas únicas custem tanto quanto varreduras completas.

Existem três soluções alternativas. builtins.exec (desde 2017) executa SQLite e analisa sua saída formatada para Nix, mas gera um processo por consulta. builtins.importNative (desde 2014) carrega uma biblioteca compartilhada com handles SQLite em cache, evitando sobrecarga de inicialização. Ambos exigem allow-unsafe-native-code-during-evaluation.

Uma terceira abordagem converte o índice em um arquivo Nix de 6,0 MiB, aproveitando a avaliação preguiçosa do Nix para tocar apenas nos atributos necessários. Uma quarta opção, builtins.wasm (março de 2026), chama funções WebAssembly, estendendo o Nix sem novos builtins.

Entidades Principais: Empresas: Determinate Systems | Pessoas: Eelco, rickynils, fmzakari