nodejs / nodejs/node

SQLite in core: maintenance trade-offs compared with other language ecosystems

Offen
#65,974 1 Kommentar 3 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

question
Vorherrschende Sprache
JavaScript
Sterne
122k
Forks
37.3k
Ø Merge
4 T. 2 Std.
Gemergte PRs (30 T.)
283

Beschreibung

I've been reading #49663 and #53264 to understand how SQLite ended up in Node core. I understand that it was first accepted for localStorage, and that exposing node:sqlite followed from that.

Looking at other ecosystems, there seem to be a few different approaches:

  • Python includes the sqlite3 wrapper in its standard library, though how the SQLite engine is supplied depends on the distribution.
  • Java provides JDBC, while SQLite support comes through a separate driver.
  • .NET provides an official Microsoft.Data.Sqlite package, installed separately through NuGet.
  • Go provides database/sql and leaves the actual drivers to external packages.
  • Bun and Deno both provide built-in SQLite APIs.

The .NET approach seems particularly interesting here: users get an officially maintained integration, but its updates can be delivered separately from the runtime.

Given that Node already needs SQLite for localStorage, how much additional maintenance and security exposure comes from offering the broader public API? Was an official, separately distributed binding considered, and what made keeping it in core preferable?

I'm also curious how this works in practice when SQLite publishes a security fix. Where can users find out whether it affects Node's build and exposed functionality, and whether a Node update is needed?

A short explanation of these trade-offs in the docs would be useful. The original issues explain the path to inclusion, but I still have trouble understanding the long-term maintenance implications. Happy to be pointed to an existing discussion if I've missed it.

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne mit dem Lesen der Issues #49663 und #53264 und überprüfe anschließend die aktuelle Dokumentation zu node:sqlite. Füge eine prägnante Erklärung der Wartungsabwägungen hinzu, warum SQLite im Core verbleibt und wie Benutzer feststellen können, ob Sicherheitskorrekturen für SQLite ein Node-Update erfordern.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
nodejs, sqlite
Bereich
documentation
Issue-Typ
Dokumentation
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Aktiv
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
55/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.