A modern C++20 ORM library with a powerful query builder, support for multiple databases, migrations, and a Qt-compatible API.
TinyORM is a modern C++ Object-Relational Mapping library that simplifies database interactions by providing an expressive query builder and a full-featured ORM. It supports multiple databases (MySQL, MariaDB, SQLite, PostgreSQL) and includes features like migrations, relationships, and serialization, all built with C++20 standards.
C++ developers building applications that require database persistence, especially those using Qt or needing a modern, type-safe ORM with support for complex queries and migrations.
Developers choose TinyORM for its modern C++20 implementation, comprehensive feature set (including a QtSql-compatible driver alternative), extensive testing, and the ability to handle complex database operations with an intuitive API.
Modern C++ ORM library
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses concepts, ranges, and smart pointers extensively, ensuring type safety and adherence to modern practices, as highlighted by the codebase being fully tested with over 3300 unit tests.
Supports relationships (one-to-one, one-to-many, many-to-many), migrations, seeding, and a powerful query builder with subqueries and raw expressions, making complex database operations intuitive.
Works with MySQL, MariaDB, SQLite, and PostgreSQL for all ORM features, providing flexibility across different SQL backends without sacrificing functionality.
TinyDrivers offers a 1:1 API swap for QtSql with MySQL support and TLS/SSL connections, allowing seamless migration from QtSql for performance or feature enhancements.
Backed by 3378 unit tests and comprehensive markdown documentation, ensuring reliability and ease of learning for developers integrating the library.
The TinyDrivers library currently only supports MySQL, restricting its utility as a QtSql alternative for projects using PostgreSQL, SQLite, or other databases.
At version 0.38.1, the library is still in active development, which may introduce breaking changes or lack the long-term stability required for critical production systems.
Requires managing dependencies like Qt, build systems (qmake/CMake), and vcpkg, which can be cumbersome for newcomers or in environments with strict dependency controls.
As a newer project, it has a smaller community and fewer third-party resources compared to established C++ ORMs, which might slow down troubleshooting or integration efforts.