A C++ object-relational mapping library for SQLite with a Boost.Serialization-inspired API and lazy loading.
Hiberlite is a C++ object-relational mapping library that enables developers to store and retrieve C++ objects directly in an SQLite database. It solves the problem of manual SQL coding and schema management by automatically mapping classes to database tables, supporting relationships, and providing lazy loading. The library is designed for applications that need reliable, ACID-compliant data storage with simple random-access to data files.
C++ developers building applications that require persistent, embedded data storage, such as desktop software, mobile apps, or embedded systems, who prefer not to write raw SQL queries.
Developers choose Hiberlite for its minimal API inspired by Boost.Serialization, which reduces learning time, and its support for complex relationships and lazy loading without requiring code generation or a common base class.
C++ ORM for SQLite
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
API inspired by Boost.Serialization, so developers familiar with it can start quickly without learning a new syntax, as highlighted in the README's philosophy.
Works directly with C++ classes without code generators or preprocessors, simplifying build processes and reducing setup complexity.
Supports one-to-many and many-to-many relations with lazy loading, managing database joins and object fetching automatically for better performance.
No requirement to inherit from a common base class, allowing for more natural C++ object models and avoiding vendor lock-in patterns.
Tied exclusively to SQLite, making it unsuitable for projects that might need to switch to or integrate with other database systems like PostgreSQL or MySQL.
Requires adding friend declarations and hibernate methods to classes, which can clutter code, break encapsulation, and make refactoring more difficult.
Might not expose all SQLite capabilities, such as complex indexes, triggers, or custom SQL functions, without manual workarounds or raw SQL queries.