SQLite in Nix: Drei Wege, die Datenbank einzuschmuggeln
Three ways to smuggle SQLite into Nix

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!
- setheron
Wenn ihr Fragen habt, beantworte ich sie gerne.
- 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.
- 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?