HeadlinesBriefing favicon HeadlinesBriefing.com

Trois façons de faire passer SQLite dans Nix

Hacker News •
×

Le projet nixpkgs-multiverse utilise des index JSON (versions.json à 5,3 Mio, history.json à 7,5 Mio) couvrant 305 492 versions de paquets sur 31 904 paquets. Le builtins.fromJSON de Nix analyse avidement les fichiers entiers, faisant coûter une seule recherche autant qu'un balayage complet.

Trois contournements existent. builtins.exec (depuis 2017) exécute SQLite et analyse sa sortie formatée Nix, mais génère un processus par requête. builtins.importNative (depuis 2014) charge une bibliothèque partagée avec des gestionnaires SQLite mis en cache, évitant la surcharge de démarrage. Les deux nécessitent allow-unsafe-native-code-during-evaluation.

Une troisième approche convertit l'index en un fichier Nix de 6,0 Mio, tirant parti de l'évaluation paresseuse de Nix pour ne toucher qu'aux attributs nécessaires. Une quatrième option, builtins.wasm (mars 2026), appelle des fonctions WebAssembly, étendant Nix sans nouveaux builtins.

Entités clés : Entreprises : Determinate Systems | Personnes : Eelco, rickynils, fmzakari