For an in-process SQL database for my app, the first results are duckdb/duckdb (DuckDB is an in-process analytical SQL database that runs without a separate server, meeting all your requirements: zero configuration, small footprint, ACID transactions, SQL compliance, and multiple language bindings), rusqlite/rusqlite (Rusqlite provides safe Rust bindings to SQLite, giving you a fully embeddable, zero-configuration, ACID-compliant SQL database that runs inside your application process with no separate server—exactly the lightweight embedded SQL database this search asks for) and sqlite/sqlite (SQLite is the definitive embedded SQL database, providing full SQL compliance, ACID transactions, zero configuration, a tiny footprint, and is directly linkable into any C application — the perfect match for a lightweight embeddable database). cwida/duckdb and cberner/redb round out the shortlist. Compare the match explanations and check the project documentation against your requirements.
Lightweight SQL database engines designed for direct integration within application processes and local storage environments.
DuckDB is an in-process analytical database engine designed to run directly within an application process. As a zero-dependency, embedded system, it provides enterprise-grade SQL data processing capabilities without the overhead of managing a dedicated database server. It is built to handle complex analytical and aggregation tasks by storing and retrieving information in columns, allowing for high-performance relational data manipulation. The engine distinguishes itself through a columnar vectorized execution model that maximizes CPU cache efficiency during query operations. It employs adapti
DuckDB is an in-process analytical SQL database that runs without a separate server, meeting all your requirements: zero configuration, small footprint, ACID transactions, SQL compliance, and multiple language bindings.
Rusqlite is an embedded database interface and relational database driver that provides a client library for interacting with SQLite. It functions as an SQL query wrapper, enabling the management of local file-based or in-memory databases through a safe interface. The library allows for the extension of native database capabilities by implementing custom scalar functions, collations, and virtual tables. It also supports the embedding of the database engine directly into the application binary to remove external library dependencies. The project covers a broad range of capabilities including
Rusqlite provides safe Rust bindings to SQLite, giving you a fully embeddable, zero-configuration, ACID-compliant SQL database that runs inside your application process with no separate server—exactly the lightweight embedded SQL database this search asks for.
SQLite is a serverless relational database engine and C-based library that stores data in a single local disk file. It functions as an embedded SQL database, integrating directly into applications without the need for a separate server process. The engine includes specialized capabilities for full-text search indexing and spatial data querying using R-Tree structures for geographic or geometric coordinate ranges. The system provides broad support for SQL data manipulation, database recovery and repair, and change tracking for synchronizing modifications between databases. It also features a
SQLite is the definitive embedded SQL database, providing full SQL compliance, ACID transactions, zero configuration, a tiny footprint, and is directly linkable into any C application — the perfect match for a lightweight embeddable database.
DuckDB is an embedded, in-process analytical SQL database and OLAP database management system. It functions as a data engine for Parquet and CSV files, allowing users to execute complex SQL queries on large datasets without requiring a separate server process. The system is designed for local analytical processing and embedded data science workflows. It enables the direct querying and analysis of Parquet and CSV files from disk, bypassing the need to load data into a permanent database. The engine provides high-performance analytical SQL execution, including support for window functions and
DuckDB is an embedded, in-process analytical SQL database that runs without a separate server and supports complex queries and language bindings, fitting your need for a lightweight embeddable SQL database.
redb is an embedded key-value store and ACID-compliant storage engine. It functions as a persistent storage system for saving and retrieving data as key-value pairs within a tree structure. The engine is built as an MVCC transactional database, utilizing multi-version concurrency control to manage simultaneous reads and writes without blocking. It employs a single-writer multi-reader model to ensure data consistency while allowing multiple threads to access the store. The system provides persistent state management and atomic transaction management to prevent data corruption during crashes.
redb is an embeddable ACID key-value store, not an SQL database — it lacks SQL compliance
Convex is a serverless backend platform that provides a real-time reactive database, serverless functions, and state synchronization for web applications. It manages relational JSON documents using ACID-compliant transactions and schema validation to ensure data consistency and integrity. The platform distinguishes itself by synchronizing database state with clients via WebSockets, allowing user interfaces to update automatically as data changes. It also includes a specialized vector search database for performing semantic search using embeddings and supports both cloud-native deployment and
Convex is a full serverless backend platform with a reactive database that runs as a separate cloud service, not a lightweight library you embed directly into your application process without a server.
Badger is an embeddable key-value store written in Go that provides persistent data storage for byte keys and values. It is a persistent database that utilizes a tiered LSM tree storage model to optimize disk storage and retrieval efficiency. The system features an ACID transaction engine that ensures data integrity through serializable snapshot isolation and multi-version concurrency control. It also provides an encrypted key-value store with data-at-rest encryption and a managed encrypted key registry to secure stored information. The engine covers a broad set of capabilities including hig
Badger is an embeddable ACID key-value store written in Go, but it does not provide SQL querying or relational table support — your search explicitly calls for an SQL database, so this key-value store is a neighbouring category rather than the tool you need.
bbolt is an ACID-compliant embedded key-value store for Go applications. It persists all data in a single memory-mapped file on disk, organizing information using B+ trees to facilitate sorted key iteration and efficient range queries. The project distinguishes itself through a hierarchical data organization model, allowing buckets to be nested within other buckets to create a tree-like structure. It employs a single-writer, multi-reader locking mechanism and copy-on-write transactions to ensure serializable isolation and data integrity. The system includes comprehensive data management capa
Bbolt is an embedded ACID key-value store for Go, not a SQL database, so it lacks SQL query language and table support—it offers a different data model than what this search requires.
RocksDB is a high-performance, embeddable persistent key-value library and storage engine based on Log-Structured Merge-trees. It is designed to provide durable storage for large-scale datasets, integrating directly into applications to manage data on flash and RAM-based hardware. The engine is distinguished by its focus on minimizing read and write amplification through multi-threaded compaction and custom memory allocators. It features specialized optimizations for flash storage, including support for zoned block devices, and provides the ability to extend store behavior via external plugin
RocksDB is a high-performance embeddable key-value storage engine, but it is not a SQL database — it lacks SQL querying and compliance, so it is more of a building block for databases rather than the embeddable SQL database this search targets.
SurrealDB is a multi-model database engine designed to store and query document, graph, relational, and vector data within a single ACID-compliant platform. It functions as an AI-native data store, integrating vector search, graph traversal, and machine learning model execution directly into its query layer. By providing a unified declarative query language, the platform eliminates the need for external middleware to synchronize data across different storage models. The platform distinguishes itself through its ability to manage agent memory and complex workflows natively. It allows developer
SurrealDB is a multi-model server-based database that requires a separate process, not the lightweight embeddable SQL database you need for in-process embedding like SQLite.
| Repository | Stars | Language | License | Last push |
|---|---|---|---|---|
| duckdb/duckdb | 38.8K | C++ | MIT | |
| rusqlite/rusqlite | 4.1K | Rust | mit | |
| sqlite/sqlite | 9.9K | C | NOASSERTION | |
| cwida/duckdb | 38.8K | C++ | MIT | |
| cberner/redb | 4.2K | Rust | apache-2.0 | |
| get-convex/convex-backend | 11.9K | TypeScript | NOASSERTION | |
| dgraph-io/badger | 15.7K | Go | Apache-2.0 | |
| etcd-io/bbolt | 9.6K | Go | MIT | |
| facebook/rocksdb | 31.8K | C++ | GPL-2.0 | |
| surrealdb/surrealdb | 32.4K | Rust | NOASSERTION |