TinyORM Alternatives - C++ Database | LibHunt


Description

TinyORM is a modern ORM library that makes interacting with a database extremely simple.

The code is written in the modern c++20 way and is well tested with the unit and functional tests. Almost all the query builder methods are unit tested. The TinyORM's query builder code and the code which is responsible for obtaining relationships, is tested by functional tests against all supported databases. The code coverage is good enough to guarantee API and behavior compatibility.

Programming language: C++

License: MIT License

 TinyORM alternatives and similar libraries

Based on the "Database" category.
Alternatively, view TinyORM alternatives based on common mentions on social networks and blogs.

  • ClickHouse

    ClickHouse® is a real-time analytics database management system

    ClickHouse logo

  • RocksDB

    A library that provides an embeddable, persistent key-value store for fast storage.

    facebook logo

  • The Code Monster Manual Vol. 1 Logo

  • LevelDB

    LevelDB is a fast key-value storage library written at Google that provides an ordered mapping from string keys to string values.

    google logo

  • Hiredis

    Minimalistic C client for Redis >= 1.2

    redis logo

  • LMDB

    Read-only mirror of official repo on openldap.org. Issues and pull requests here are ignored. Use OpenLDAP ITS for issues.

    LMDB logo

  • sqlite_orm

    ❤️ SQLite ORM light header only library for modern C++

    fnc12 logo

  • SQLite

    Unofficial git mirror of SQLite sources (see link for build instructions)

    mackyle logo

  • SOCI

    Official repository of the SOCI - The C++ Database Access Library

    SOCI logo

  • TileDB

    The Universal Storage Engine

    TileDB-Inc logo

  • mongodb logo

  • Sophia

    Modern transactional key-value/row storage library.

    pmwkaa logo

  • cpp_redis

    DISCONTINUED. C++11 Lightweight Redis client: async, thread-safe, no dependency, pipelining, multi-platform.

  • mongodb logo

  • Bedrock

    Rock solid distributed database specializing in active/active automatic failover and WAN replication

    Expensify logo

  • libmdbx

    DISCONTINUED. One of the fastest embeddable key-value ACID database without WAL. libmdbx surpasses the legendary LMDB in terms of reliability, features and performance.

  • SqliteModernCpp logo

  • paulftw logo

  • SimDB

    A high performance, shared memory, lock free, cross platform, single file, no dependencies, C++11 key-value store

    LiveAsynchronousVisualizedArchitecture logo

  • upscaledb

    A very fast lightweight embedded database engine with a built-in query language.

    cruppstahl logo

  • LMDB++

    C++11 wrapper for the LMDB embedded B+ tree database library.

    drycpp logo

  • luca3m logo

  • objectbox logo

  • BerylDB

    DISCONTINUED. BerylDB is a fully modular data structure data manager that can be used to store data as key-value entries. The server allows channel subscription and is optimized to be used as a cache repository. Supported structures include lists, sets, multimaps, and keys.

    beryldb logo

  • AtnNn logo

  • tntdb

    Tntdb is a c++-class-library for easy access to databases.

    maekitalo logo

  • Website

    VSQLite++ Library - BSD-3 Licensed

    vinzenz logo

  • aredis

    a clean redis C++ client

    lordoffox logo

  • SQLinq

    SQLinq is a C++ library that enables easy and efficient integration with SQL databases, using a syntax similar to LINQ from C#.

    piotr-maker logo

  • MySQL++

    A C++ wrapper for MySQL's C API. [LGPL]

* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.

Do you think we are missing an alternative of  TinyORM or a related project?

Add another 'Database' Library

README

 TinyORM

MSVC2019 Qt5.15 MSVC2022 Qt6.3 Linux GCC/Clang Qt5.15 Linux GCC/Clang Qt6.2 MSYS2 UCRT64 GCC/Clang clang-cl MSVC2022 Clang Tidy/Clazy Qt5.15 Clang Tidy/Clazy Qt6.2

www.tinyorm.org License MIT TinyORM v0.21.0 tom v0.4.2

TinyORM is a modern ORM library that makes interacting with a database extremely simple.

The code is written in the modern c++20 way and is well tested with the unit and functional tests. Almost all the query builder methods are unit tested. The TinyORM's query builder code and the code which is responsible for obtaining relationships, is tested by functional tests against all supported databases. The code coverage is good enough to guarantee API and behavior compatibility.

Documentation

Whole library is documented as markdown documents:

www.tinyorm.org

Features Summary

  • simple database connections management 🧬
    • database manager that helps with the database connections management
    • Orm::DB facade class for nicer and shorter syntax
    • MySQL, SQLite, and PostgreSQL support for all features
    • multi-threading support 👀
  • overhauled query builder 🔧
    • allows passing sub-queries and raw expressions practically everywhere, to column names, values, and to every SQL clause as select, where, joins, group by, having, order by 🔥
    • a logical grouping that offers to wrap logical groups in parenthesis
    • chunked results for lower memory footprint ✨
    • raw methods for all SQL clauses
    • all join types (left, right, cross, inner) and also join where clause support 🫤
    • aggregate methods min, max, sum, increment, decrement, ...
    • whereExists and exists methods for an existence queries
    • transactions and pessimistic locking 🔒
    • of course, insert, update, and delete SQL clauses support
  • clever ORM with all relation types support 🎉
    • one-to-one, one-to-many, and many-to-many relation types (also inverse relationships)
    • eager and lazy loading with custom select and constraints 🚀
    • all query builder methods are proxied to the model instances and also to the relation instances 🤯 (everything that can be called on the query builder can also be called on the model and relation instances)
    • clean active record pattern
    • advanced features like timestamps, touching parent timestamps, soft deleting, default models, and default model attributes
    • querying relationships existence/absence using the has, whereHas, and hasNested methods (using dot notation for selecting nested relationships users.posts.comments)
  • compiled database migrations and seeders 🕺
    • create, update, drop, and rename database tables
    • create, drop, and rename table columns
    • extensive schema builder that allows creating of all possible column types
    • terser syntax for creating foreign keys and foreign key constraints
    • supports creating, and dropping column indexes (primary, unique, fulltext, spatial)
  • the tom console application with tab completion for all shells (pwsh, bash, zsh) 🥳
    • scaffolding of models, migrations, and seeders
    • overhauled models scaffolding, every feature that is supported by models can be generated using the tom make:model cli command
  • a huge amount of code is unit tested, currently 1476 unit tests 🤯
  • C++20 only, with all the latest features used like concepts/constraints, ranges, smart pointers (no new keyword in the whole code 😎), folding expressions
  • qmake and CMake build systems support
    • CMake FetchContent module support 🤙
  • vcpkg support (also the vcpkg port, currently not committed to the vcpkg repository ☹️)
  • it's really fast, you can run 1000 complex queries in 500ms (heavily DB dependant, the PostgreSQL is by far the fastest) ⌚
  • extensive documentation 📃
  • ...

Showcase Images

Tom console application

Tom console application

Passed all unit tests 🥳

Passed all unit tests

TinyOrmPlayground single-threaded

Invoked TinyOrmPlayground single-threaded

TinyOrmPlayground multi-threaded

Invoked TinyOrmPlayground multi-threaded


*Note that all licence references and agreements mentioned in the  TinyORM README section above are relevant to that project's source code only.

Do not miss the trending, libraries, news and articles with our weekly report.