HeadlinesBriefing favicon HeadlinesBriefing.com

Tres formas de introducir SQLite en Nix

Hacker News •
×

El proyecto nixpkgs-multiverse usa índices JSON (versions.json a 5,3 MiB, history.json a 7,5 MiB) que cubren 305.492 versiones de paquetes en 31.904 paquetes. La función builtins.fromJSON de Nix analiza los archivos enteros de forma ávida, haciendo que una sola búsqueda cueste tanto como un escaneo completo.

Existen tres soluciones alternativas. builtins.exec (desde 2017) ejecuta SQLite y analiza su salida en formato Nix, pero genera un proceso por consulta. builtins.importNative (desde 2014) carga una biblioteca compartida con manejadores SQLite en caché, evitando la sobrecarga de inicio. Ambas requieren allow-unsafe-native-code-during-evaluation.

Un tercer enfoque convierte el índice en un archivo Nix de 6,0 MiB, aprovechando la evaluación perezosa de Nix para tocar solo los atributos necesarios. Una cuarta opción, builtins.wasm (marzo de 2026), llama a funciones WebAssembly, extendiendo Nix sin nuevos builtins.

Entidades clave: Empresas: Determinate Systems | Personas: Eelco, rickynils, fmzakari