/queryset-cpp

Querysets implemented for C++

Primary LanguageC++MIT LicenseMIT

queryset-cpp

C++ implementation of an ORM inspired by Python/Django. It allows to query a database-like backend using compact and human readable code.

Supported backends:

  • filesystem (read)
  • sqlite3
  • postgresql

Index

Build status

Windows Unix
Visual Studio gcc 4.8 gcc 4.9 gcc 5.2 gcc 5.3 gcc 6.3
master Build status Build status Build status Build status Build status Build status
dev Build status Build status Build status Build status Build status Build status

All branches under active development (sources and dependencies).

Dependencies

This is the dependency graph for the project automatically generated with conan info.

Dependency graph

dependencies digraph G { rankdir=LR; "Boost/1.60.0@lasote/stable" -> {"zlib/1.2.8@lasote/stable" "bzip2/1.0.6@lasote/stable"}; "queryset-cpp/0.5@PROJECT" -> {"sqlite3cc/master@jgsogo/stable" "libpqxx/5.0.1@jgsogo/stable" "spdlog/0.9.0@memsharded/stable" "Boost/1.60.0@lasote/stable"}; "sqlite3cc/master@jgsogo/stable" -> {"sqlite3/3.18.0@jgsogo/stable" "Boost/1.60.0@lasote/stable"}; "libpqxx/5.0.1@jgsogo/stable" -> {"postgresql/v9.6.5@jgsogo/stable"}; } dependencies

Every library can be found in the official Conan repositories or in my own bintray remote. In order to be able to compile the project you have to add it to your conan remotes:

$> conan remote add jgsogo-conan-packages https://api.bintray.com/conan/jgsogo/conan-packages

Basic usage

Iterate a table

    std::cout << "== List of informers ==" << std::endl;
    auto informers = Informer::objects().all();
    for (auto& region : informers.groupBy<Region>(false)) {
        std::cout << region.first << ":" << std::endl;
        for (auto& informer : region.second) {
            std::cout << "\t- " << informer << std::endl;
        }
    }

Check a full usage example at https://github.com/jgsogo/neutron

License

MIT LICENSE