Projects / odb


ODB is a compiler-based object-relational mapping (ORM) system for C++. It allows you to persist C++ objects to a relational database without having to deal with tables, columns, or SQL and without manually writing any mapping code. The C++ code that performs the conversion between persistent classes and their database representation is automatically generated by the ODB compiler. The ODB compiler is a real C++ compiler except that instead of producing assembly or machine code, it generates portable C++, which can in turn be compiled by any C++ compiler. ODB is not a framework. It does not dictate how you should write your application. Rather, it is designed to fit into your style and architecture by only handling C++ object persistence and not interfering with any other functionality.

Operating Systems

Recent releases

  •  30 Oct 2013 11:00

    Release Notes: The major new feature in this release is support for database schema evolution, including schema and data migration as well as soft object model changes. Other important features in version 2.3.0 include support for C++11 enum classes as well as object sections which provide the ability to split data members of a persistent class into independently loaded/updated groups.

    •  13 Feb 2013 13:06

      Release Notes: Major new features in this release include multi-database support, prepared queries, change-tracking containers, custom sessions, and automatic mapping for char[N]. This version also adds support for Qt5 in addition to Qt4, and comes with a guide on using ODB with mobile/embedded systems.

      •  22 Nov 2012 12:25

        Release Notes: This bugfix-only release fixes a number of issues in each database runtime as well as the ODB compiler.

        •  18 Sep 2012 11:45

          Release Notes: Major new features in this release include the ability to use accessor/modifier functions/expressions to access data members, support for virtual data members, the ability to define database indexes on data members, and support for mapping extended database types, such as geospatial types, user-defined types, and collections. The profile libraries have been updated, with the Boost profile now providing persistence support for the Uuid and Multi-Index container libraries while the Qt profile now includes the QUuid type. Finally, this release adds support for Visual Studio 2012 and Clang 3.1.

          •  02 May 2012 12:21

            Release Notes: Major new features in this release include support for C++11, polymorphism, composite objects IDs (composite primary keys), and the NULL semantics for composite values. This release has also been tested with GCC 4.7 and Clang 3.0, with the ODB compiler now supporting the GCC 4.7 series plugin interface. This release also introduces a free proprietary license for small object models.


            Project Spotlight


            A Fluent OpenStack client API for Java.


            Project Spotlight

            TurnKey TWiki Appliance

            A TWiki appliance that is easy to use and lightweight.