SQLite in Nix: Drei Wege, die Datenbank einzuschmuggeln

Three ways to smuggle SQLite into Nix

SQLite in Nix: Drei Wege, die Datenbank einzuschmuggeln

Der Autor von nixpkgs-multiverse zeigt, wie man SQLite in Nix nutzen kann, obwohl es kein `builtins.sqlite` gibt. Er stellt drei Methoden vor: `builtins.exec`, `builtins.importNative` und eine riesige Nix-Datei, die Nix' Lazy Evaluation ausnutzt. Zusätzlich erwähnt er einen vierten Weg mit `builtins.wasm` und einem gepatchten `read_file_range`, der binäre Dateien effizient lesen kann. Jede Methode hat ihre Vor- und Nachteile hinsichtlich Performance, Sicherheit und Komplexität.

Wenn wir nicht auf die Nix-`builtins` beschränkt wären, würden wir etablierte Technologien nutzen, um unseren Datensatz effizient zu kodieren und mehrere Abfragemuster zu ermöglichen: Datenbanken!
  1. setheron

    Wenn ihr Fragen habt, beantworte ich sie gerne.

  2. kevincox

    Es scheint, als könntest du die Daten einfach in den WASM-Blob kompilieren. Dann könnte man eine optimiertere Abfrage-Engine als SQLite verwenden. Das sollte sehr schnell zu kompilieren sein (der Großteil des WASM ist nur ein Byte-Puffer, der Code besteht aus ein paar binären Suchen und etwas Ergebniscodierung). Der Nachteil ist, dass du neu kompilieren musst, um das Repo zu aktualisieren, aber ich denke nicht, dass das besonders teuer sein sollte.

  3. lsb

    Wenn so viel JSON in den Speicher eines Mikrocontrollers passt (7,5 MB als Text) und es ein Performance-Problem ist, wäre es vielleicht sinnvoll, den JSON-Parser aufzurüsten?

Mehr von diesem Tag

2026-08-21