nodejs / nodejs/node

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

Abierto
#65,974 1 comentario 3 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

question
Lenguaje dominante
JavaScript
Estrellas
122k
Forks
37.3k
Merge medio
4 d 2 h
PR fusionados (30 d)
283

Descripción

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.

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Comienza leyendo los issues #49663 y #53264; después, revisa la documentación actual de node:sqlite. Añade una explicación concisa de las ventajas y desventajas de mantenimiento, de por qué SQLite sigue formando parte del core y de cómo pueden determinar los usuarios si las correcciones de seguridad de SQLite requieren una actualización de Node.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
nodejs, sqlite
Área
documentation
Tipo de issue
Documentación
Dificultad
3/5
Tiempo estimado
1-2 días
Estado de actividad
Activo
Claridad
Bastante claro
Aptitud para principiantes
55/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.