This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[ANN] ODB C++ ORM 2.2.0 released


Hi,

I am pleased to announce the release of ODB 2.2.0.

ODB is an open source 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 of
the mapping code.

ODB is implemented as a GCC plugin and reuses the GCC compiler frontend
for C++ parsing. ODB supports all releases of GCC with plugin support
(4.5-4.7) as well as 4.8 snapshots. With a few small modifications we've
also managed to link the plugin statically on Windows, so ODB also works
on Windows.

Major new features in this release:

  * Ability to use multiple database systems (for example, MySQL, SQLite,
    etc.) from the same application. It comes in the 'static' and 'dynamic'
    flavors with the latter allowing the application to dynamically load
    the database support code for individual database systems if and when
    necessary.

  * Support for prepared queries which are a thin wrapper around the
    underlying database system's prepared statements functionality.
    Prepared queries provide a way to perform potentially expensive
    query preparation tasks only once and then execute the query
    multiple times.

  * Support for change-tracking containers which minimize the number of
    database operations necessary to synchronize the container state with
    the database. This release comes with change-tracking equivalents for
    std::vector and QList.

  * Support for custom sessions. This mechanism can be used to provide
    additional functionality, such as automatic change tracking, delayed
    database operations, auto change flushing, or object eviction.

  * Support for automatically-derived SQL name transformations. You can
    now add prefixes/suffixes to table, column, index, and sequence names,
    convert them to upper/lower case, or do custom regex transformations.

  * Automatic mapping of char[N] to database VARCHAR(N-1) (or similar).

This release also adds support for Qt5 in addition to Qt4 and comes with
a guide on using ODB with mobile and embedded systems (Raspberry Pi is
used as a sample ARM target).

A more detailed discussion of these features can be found in the following
blog post:

http://www.codesynthesis.com/~boris/blog/2013/02/13/odb-2-2-0-released/

For the complete list of new features in this version see the official
release announcement:

http://www.codesynthesis.com/pipermail/odb-announcements/2013/000025.html

ODB is written in portable C++ and you should be able to use it with any
modern C++ compiler. In particular, we have tested this release on GNU/Linux
(x86/x86-64/ARM), Windows (x86/x86-64), Mac OS X (x86), and Solaris
(x86/x86-64/SPARC) with GNU g++ 4.2.x-4.8.x, MS Visual C++ 2008, 2010, and
2012, Sun Studio 12u2, and Clang 3.2.

The currently supported database systems are MySQL, SQLite, PostgreSQL,
Oracle, and SQL Server. ODB also provides profiles for Boost and Qt, which
allow you to seamlessly use value types, containers, and smart pointers
from these libraries in your persistent classes.

More information, documentation, source code, and pre-compiled binaries are
available from:

http://www.codesynthesis.com/products/odb/

Enjoy,
	Boris


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]