# wiselibs/better-sqlite3

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/wiselibs-better-sqlite3).**

7,311 stars · 465 forks · JavaScript · MIT

## Links

- GitHub: https://github.com/WiseLibs/better-sqlite3
- awesome-repositories: https://awesome-repositories.com/repository/wiselibs-better-sqlite3.md

## Topics

`database` `sql` `sqlite` `sqlite3`

## Description

better-sqlite3 is a high-performance SQLite3 client for Node.js that executes queries synchronously, returning results directly without callbacks or promises. It compiles as a native addon using N-API, binding directly to the SQLite3 C library for immediate query execution and zero-copy result serialization into native JavaScript objects.

The library is optimized for Write-Ahead Logging (WAL) mode, enabling faster concurrent reads and writes in web applications. It provides durability level tuning through the synchronous pragma, allowing adjustments between FULL, NORMAL, and OFF modes to balance write performance against crash safety. The library also includes checkpoint starvation prevention, monitoring WAL file growth and triggering forced checkpoints to prevent unbounded disk usage during high-write workloads.

The project handles multi-gigabyte databases efficiently with proper indexing and joins, and its synchronous API eliminates callback overhead and promise wrappers for straightforward query execution.

## Tags

### Data & Databases

- [Synchronous SQL Executions](https://awesome-repositories.com/f/data-databases/sql-query-execution/synchronous-sql-executions.md) — Runs SQL statements synchronously in Node.js and returns results directly without callbacks or promises. ([source](https://cdn.jsdelivr.net/gh/wiselibs/better-sqlite3@master/README.md))
- [SQLite Write Optimizations](https://awesome-repositories.com/f/data-databases/concurrent-write-optimizations/write-throughput-optimizations/sqlite-write-optimizations.md) — Improves read and write performance for concurrent database access by enabling Write-Ahead Logging. ([source](https://cdn.jsdelivr.net/gh/wiselibs/better-sqlite3@master/README.md))
- [Synchronous](https://awesome-repositories.com/f/data-databases/database-drivers/synchronous.md) — A Node.js database driver that runs SQLite3 queries synchronously, returning results inline without async patterns.
- [WAL Mode Enabling](https://awesome-repositories.com/f/data-databases/database-management-systems/database-systems-management/performance-optimization-tools/write-ahead-logging-configurations/wal-mode-enabling.md) — Switches the database to Write-Ahead Logging for dramatically faster concurrent reads and writes. ([source](https://github.com/WiseLibs/better-sqlite3/blob/master/docs/performance.md))
- [SQLite3 Clients](https://awesome-repositories.com/f/data-databases/high-performance-databases/sqlite3-clients.md) — A high-speed SQLite3 client for Node.js that handles multi-gigabyte databases with efficient indexing and joins.
- [Synchronous SQLite3 Executions](https://awesome-repositories.com/f/data-databases/sql-query-execution/synchronous-sqlite3-executions.md) — Runs SQL queries in Node.js with synchronous execution, returning results directly without callbacks or promises.
- [Node.js Bindings](https://awesome-repositories.com/f/data-databases/sqlite3-extensions/node-js-bindings.md) — The fastest synchronous SQLite3 library for Node.js, executing queries directly without callbacks or promises.
- [WAL Mode Database Libraries](https://awesome-repositories.com/f/data-databases/write-ahead-logging/database-wal-streamings/wal-mode-database-libraries.md) — Provides a SQLite3 library optimized for Write-Ahead Logging, enabling faster concurrent reads and writes.
- [SQLite WAL Integrations](https://awesome-repositories.com/f/data-databases/write-ahead-logging/tsdb-write-ahead-logging-with-block-flushing/sqlite-wal-integrations.md) — Enables Write-Ahead Logging through direct pragma configuration for concurrent reads and writes.
- [Large Data Volume Handling](https://awesome-repositories.com/f/data-databases/data-compression/large-data-volume-handling.md) — Processes queries efficiently on multi-gigabyte databases using proper indexing and joins. ([source](https://cdn.jsdelivr.net/gh/wiselibs/better-sqlite3@master/README.md))
- [WAL Checkpointing](https://awesome-repositories.com/f/data-databases/database-management-systems/database-systems-management/performance-optimization-tools/write-ahead-logging-configurations/wal-checkpointing.md) — Monitors and forces WAL file checkpoints to prevent unbounded disk usage in long-running applications.
- [Starvation Prevention](https://awesome-repositories.com/f/data-databases/database-management-systems/database-systems-management/performance-optimization-tools/write-ahead-logging-configurations/wal-checkpointing/starvation-prevention.md) — Monitors WAL file growth and forces checkpoints to prevent unbounded disk usage during high-write workloads.
- [Database Performance Utilities](https://awesome-repositories.com/f/data-databases/database-performance-utilities.md) — Processes queries efficiently on multi-gigabyte SQLite3 databases with proper indexing and joins.
- [Zero-Copy](https://awesome-repositories.com/f/data-databases/serialization-frameworks/zero-copy.md) — Returns query results as native JavaScript objects without intermediate copying using direct memory access.
- [Transaction Durability Relaxations](https://awesome-repositories.com/f/data-databases/transaction-controls/transaction-durability-relaxations.md) — Trades write performance for guaranteed durability by setting the synchronous pragma to FULL in WAL mode. ([source](https://github.com/WiseLibs/better-sqlite3/blob/master/docs/performance.md))
- [SQLite Durability Tunings](https://awesome-repositories.com/f/data-databases/transaction-controls/transaction-durability-relaxations/sqlite-durability-tunings.md) — Adjusts write durability levels by setting synchronous pragmas to balance performance and data safety.

### Part of an Awesome List

- [Synchronous](https://awesome-repositories.com/f/awesome-lists/devtools/c-bindings/synchronous.md) — Binds directly to the SQLite3 C library using synchronous calls for immediate query execution.

### Programming Languages & Runtimes

- [Node.js Native Addons](https://awesome-repositories.com/f/programming-languages-runtimes/node-js-native-addons.md) — Compiles as a Node.js native addon using N-API for direct C-level access to SQLite3.

### Software Engineering & Architecture

- [Durability Level Adjustments](https://awesome-repositories.com/f/software-engineering-architecture/durable-workflow-engines/durable-task-conversion/durable-execution-pausing/durability-level-adjustments.md) — Adjusts synchronous pragma settings to balance write performance against crash safety in WAL mode.
