Skip to content

stabilization of node:sqlite module #57445

Description

@everett1992

What is the problem this feature will solve?

I couldn't find any issues tracking the stabalization of the node:sqlite module. Built in sqlite support will remove the need for native modules which complicate build and distribution.

What is the feature you are proposing to solve the problem?

Eventually stabilizing test sqlite

What alternatives have you considered?

No response

Activity

  1. cjihrig commented on Mar 13, 2025

    @cjihrig
    Contributor

    node:sqlite is already unflagged. I would be supportive of dropping the experimental warning as well.

    As far as officially stabilizing the module goes, I think there is still some work to do. I think targeting Node v25 in October could be a realistic goal, but there aren't a lot of people working on the effort. Another hurdle is a lack of reviews from collaborators - things move slowly when it takes roughly a week to get changes merged.

  2. everett1992 commented on Mar 13, 2025

    @everett1992
    ContributorAuthor

    Is there a rough list of what needs done before it can be marked stable?
    I'd be happy to review or contribute.

    If it's not stable by v24 could it be backported to 24 (and ideally older versions). One of the reasons I want this stabilized soon is so it can be used by libraries / apps with lower minimum supported node versions.

  3. jasnell commented on Mar 13, 2025

    @jasnell
    Member

    Another hurdle is a lack of reviews from collaborators - things move slowly when it takes roughly a week to get changes merged...

    These are not always readily visible. If there are specific PRs please tag me and I'll be happy to review.

  4. changed the title [-]stabalization of node:sqlite module[/-] [+]stabilization of node:sqlite module[/+] on Mar 14, 2025
  5. cjihrig commented on Mar 14, 2025

    @cjihrig
    Contributor

    Is there a rough list of what needs done before it can be marked stable?

    Not exactly. There are currently some open issues and PRs. Some (not all) of those need to be resolved. I know that @billywhizz had mentioned some potential performance optimizations as well that I think would be good to explore.

    If it's not stable by v24 could it be backported to 24

    I don't see it making the v24.0.0 cutoff, but it could likely be backported.

  6. billywhizz commented on Mar 14, 2025

    @billywhizz
    Contributor

    i can take a look at any work that is outstanding over next few days and can hopefully help with any effort to stabilize this going forward.

  7. added
    sqliteIssues and PRs related to the SQLite subsystem.
    on Apr 5, 2025
  8. anonrig commented on Apr 7, 2025

    @anonrig
    Member

    Another hurdle is a lack of reviews from collaborators - things move slowly when it takes roughly a week to get changes merged.

    @cjihrig Would you mind tagging me in such PRs? Happy to review.

  9. KingSupernova31 commented on Sep 21, 2025

    @KingSupernova31

    Agreed this is a very useful feature, would be nice to have it stable. But please not before async support is added! #54307

  10. everett1992 commented on Oct 15, 2025

    @everett1992
    ContributorAuthor

    @KingSupernova31 I don't think async support should be required to be implemented before the sync API is stable. We just need enough of the async API sketched out to be confident that it meshes with the sync model.

    For example, whether DatabaseSync should be renamed Database if we want sync and async access via the same class, or if there will be a new DatabaseAsync class with only async methods.

  11. github-actions commented on Jul 20, 2026

    @github-actions
    Contributor

    This issue has been marked as stale due to 90 days of inactivity.
    It will be automatically closed in 30 days if no further activity occurs. If this is still relevant, please leave a comment or update it to keep it open.

  12. added
    staleIssues and PRs marked stale due to inactivity and scheduled for automatic closure.
    on Jul 20, 2026
  13. added
    never-staleIssues and PRs exempt from automated stale handling.
    and removed
    staleIssues and PRs marked stale due to inactivity and scheduled for automatic closure.
    on Jul 27, 2026
  14. TrevorBurnham commented on Aug 4, 2026

    @TrevorBurnham
    Contributor

    I couldn't find a written list of blockers for node:sqlite stabilization, so I went through the open sqlite issues and PRs and drafted one below. Corrections and additions welcome.


    1. Design decision that can't be deferred

    • Settle whether an async API gets a separate class or shares Database. Per the discussion in sqlite: mark as release candidate #61262 and here, async doesn't need to ship first, but the extension point does need to be decided.
    • Decide on DatabaseSync → Database. In February, @louwers, @geeksilva97 and @cjihrig (non-blocking) all indicated the rename made sense, but no PR was opened and main still has DatabaseSync. This is the one item that gets materially harder after stabilization, so it's worth either doing or explicitly closing out.
    • sqlite: add batched async Database API #62015 (batched async Database) is at MVP and hasn't moved since May. It still needs docs, and it has an open question about v8::Promise losing async context that could use guidance from someone who knows that area.

    Note that as it stands, #62015 adds an async Database in contrast to the existing DatabaseSync. So merging that PR would cement the existing DatabaseSync naming.

    What I'd suggest is that we rename DatabaseSync → Database, but have a separate node:sqlite/promises import path for the async API, consistent with the established convention for APIs like fs and stream.

    2. Memory safety

    3. Semantics that become semver-major if deferred

    These value-conversion behaviors need to be pinned down:

  15. BurningEnlightenment commented on Aug 5, 2026

    @BurningEnlightenment

    w.r.t. DatabaseSync I recall that the destructor closes the DB connection if the user forgot to do so. Given that FileHandle moved in the opposite direction with DEP0137, it might be worth to align their behaviour in that regard before stabilizing the API.

    If I have time, I might rebase the async Database PR to the current main commit this weekend.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    never-staleIssues and PRs exempt from automated stale handling.sqliteIssues and PRs related to the SQLite subsystem.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions