2 Punkte von GN⁺ 2024-10-16 | 1 Kommentare | Auf WhatsApp teilen
  • Ermöglicht die Nutzung von sqlite3 in modernen Browsern mit WASM-Unterstützung
  • Die erste öffentliche Beta begann mit Version 3.40; die API soll in Release 3.41 auf Basis des Community-Feedbacks stabilisiert werden

Praktische Anwendungsfälle

  • Bereits im Einsatz in verschiedenen Projekten wie SQLime, Evolu und SQLiteNext
  • Verwandte Projekte sind unter anderem sql.js von Alon Zakai, wa-sqlite von Roy Hashimoto und absurd-js von James Long

Zusammenfassung von GN⁺

  • Die sqlite3-WASM- und JavaScript-API ist ein wichtiges Projekt, das die Nutzung von sqlite3-Datenbanken im Webbrowser ermöglicht
  • Es bietet verschiedene Rezepte für Client-Code und Informationen zu API-Änderungen und liefert damit nützliche Hinweise für Entwickler
  • Durch den Vergleich mit verwandten Projekten lassen sich Eigenständigkeit und Nutzen dieses Projekts besser verstehen
  • Als Projekte mit ähnlicher Funktionalität werden unter anderem sql.js und wa-sqlite empfohlen

1 Kommentare

 
GN⁺ 2024-10-16
Hacker-News-Kommentare
  • Die Idee, SQLite im Browser-Speicher auszuführen und mit Tricks aus Litestream und Cloudflare Durable Objects WAL-Logs an den Server zu streamen, ist interessant

    • Mit den serverseitigen Daten lässt sich die clientseitige Datenbank rekonstruieren
    • Der WAL-Modus ist im Standard-SQLite-WASM-Build nicht enthalten und erfordert daher eine eigene Anpassung
  • Das aktuelle Release von SQLite ist 3.46.1, aber die Seite wurde nicht aktualisiert, was zu Verwirrung über die API-Stabilität führt

    • Es wäre gut, wenn das SQLite-Team ein offizielles npm-Paket einschließlich der WASM-Version bereitstellen würde
  • Die SQLite-in-WASM-Version von Pyodide wird persönlich bevorzugt

    • Pyodide stellt WASM SQLite kostenlos als Teil der Python-Standardbibliothek bereit
    • Die aktuelle SQLite-Version in Pyodide ist 3.39.0 und muss aktualisiert werden
  • Die Nutzung von SQLite in einer Local-First-Umgebung wirkt schwergewichtig

    • Die nativen Speicher-APIs des Browsers zu verwenden, insbesondere IndexedDB, ist effizienter
    • Es wird eine Open-Source-Lösung benötigt, die eine SQLite-ähnliche API bietet
  • In Golang ist das wasm-SQLite-Paket von ncruces gut

    • Es funktioniert gut in Umgebungen wie OpenBSD
  • Es wurde versucht, SQLite im Rust-Ökosystem zu verwenden, aber derzeit gibt es zu wenige unterstützende Wrapper

    • Es ist schwierig, emscripten-wasm-Code mit wasm32-unknown-unknown kompatibel zu machen
  • Es stellt sich die Frage, ob SQLite ein Ersatz für IndexedDB sein kann

    • Es gibt Fragen dazu, ob die Daten persistent bleiben oder im File System API bzw. in IndexedDB/lokalem Speicher abgelegt werden müssen
  • Die minimale Abhängigkeitsgröße von SQLite WASM beträgt etwa 1,3 MB

    • Für Apps im Browser ist das etwas groß, in anderen Umgebungen kann es aber angemessen sein
  • Es gibt die Meinung, dass das Offline-First- und allgemeine App-Storage-Ökosystem besser wäre, wenn WebSQL SQLite gewesen wäre

    • Es wäre gut, ausdrücklich festzulegen, dass Browser die SQLite-API unterstützen sollen
  • Mit SQLite aus dem WASM-Build und der Chicory-Runtime wurde eine reine SQLite-Bibliothek für die JVM-Laufzeit erzeugt

    • Als experimentelles Projekt könnte es dem JVM-Ökosystem ein SQLite-Werkzeug ohne Abhängigkeiten bieten
  • Es ist geplant, SQLite in exaequOS.com einzubinden