A lightweight C++14 wrapper for SQLite that provides a modern, type-safe API with minimal overhead.
sqlite_modern_cpp is a lightweight, header-only C++14 wrapper for the SQLite database library. It provides a modern, type-safe API that simplifies database operations by leveraging C++ features like lambdas, smart pointers, and STL containers, reducing the boilerplate and error-proneness of the raw SQLite C API while maintaining full compatibility and performance.
C++ developers working on projects that require embedded database storage, such as desktop applications, mobile apps (via NDK), or IoT systems, who want a clean, modern interface to SQLite without sacrificing control or performance.
Developers choose sqlite_modern_cpp because it offers a minimal, zero-overhead wrapper that feels native to modern C++, with strong type safety, excellent error handling, and support for advanced features like prepared statements, transactions, and encryption—all without requiring a heavy ORM or runtime dependencies.
The C++14 wrapper around sqlite library
Provides compile-time type safety for binding C++ types like int, string, and vector to SQL queries, reducing runtime errors and improving code reliability, as detailed in the binding restrictions.
Uses lambdas for row handling, tuples for multi-column results, and optional/variant for NULL values (C++17), making database code more intuitive and less verbose, as shown in the examples.
Supports reusable prepared statements with explicit execution control, allowing performance gains for complex or repeated queries, as demonstrated in the prepared statements section.
Offers native encryption via sqlcipher_database with configurable keys and rekeying, adding security without external dependencies, as highlighted in the SQLCipher section.
Cannot execute multiple SQL statements separated by semicolons in one operation, requiring workarounds for batch processing or schema setups, as explicitly stated in the README.
Being header-only can significantly increase compilation times in large projects, as all template code is included in each translation unit, impacting build performance.
Lacks high-level abstractions like automatic schema management or object-relational mapping, forcing developers to write more raw SQL and handle database design manually.
LevelDB is a fast key-value storage library written at Google that provides an ordered mapping from string keys to string values.
A library that provides an embeddable, persistent key-value store for fast storage.
Minimalistic C client for Redis >= 1.2
The AI-native database built for LLM applications, providing incredibly fast hybrid search of dense vector, sparse vector, tensor (multi-vector), and full-text.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.