Tres formas de colar SQLite en Nix

Three ways to smuggle SQLite into Nix

Tres formas de colar SQLite en Nix

En este artículo, el autor explora cómo superar las limitaciones de Nix con JSON y `builtins.fromJSON`, que cargan todo el archivo en memoria. Presenta tres métodos para usar SQLite dentro de Nix: `builtins.exec`, que ejecuta comandos externos; `builtins.importNative`, que carga código nativo; y un archivo Nix gigante que aprovecha la pereza del evaluador. También menciona `builtins.wasm` como una opción segura y futura. Cada método tiene sus ventajas y desventajas, y el autor comparte su experiencia con `nixpkgs-multiverse`.

La idea sería aprovechar la pereza de Nix: los valores de los conjuntos de atributos son thunks, así que en principio puedes importar una expresión muy grande, tocar un atributo y nunca pagar por instanciar el resto.
  1. setheron

    Si tenéis preguntas, estaré encantado de intentar responder algunas.

  2. kevincox

    Parece que podrías simplemente compilar los datos en el blob de WASM. Luego usar un motor de consultas más optimizado que SQLite. Esto debería ser muy rápido de compilar (la mayor parte del WASM es solo un buffer de bytes, el código son solo unas pocas búsquedas binarias y algo de codificación de resultados). El inconveniente es que necesitas recompilar para actualizar el repositorio, pero no creo que eso deba ser particularmente costoso.

  3. lsb

    Si tanto JSON pudiera caber en la memoria de un microcontrolador (7.5MB en texto), y es un problema de rendimiento, ¿quizás valga la pena actualizar el parser de JSON?

Más de este día

2026-08-21