General Information

libdbi implements a database-independent abstraction layer in C, similar to the DBI/DBD layer in Perl. Writing one generic set of code, programmers can leverage the power of multiple databases and multiple simultaneous database connections by using this framework.

In order to utilize the libdbi framework, you need to install drivers for a particular type of database. The drivers officially supported by libdbi are split off into the libdbi-drivers project. The current version of libdbi (0.9.0) is supposed to work with any 0.9.x release of libdbi-drivers. Currently the following database engines are supported:

In addition, there are drivers for the following database engines, but they currently have issues:


November 17, 2013

libdbi switched to git from cvs as its version control system. The old cvs repository will still be available for the time being, but all new checkins go to the git repository, and new releases will be built from there. Please see the Development page for instructions how to access the new repository.

March 15, 2013

libdbi version 0.9.0 now supports multiple independent "instances", which permits programs to use several dlopen()ed modules which are linked against libdbi. Support for transactions and savepoints has been added, and drivers now receive additional hints to optimize sequential reads from result sets.

September 1, 2010

libdbi version 0.8.4 is a maintenance release geared towards package maintainers as it fixes some problems with the .so file versioning. There are no end-user-visible changes compared to 0.8.3.

November 23, 2008

libdbi has been "wrapped": dbixx provides a simple object-oriented interface to libdbi for C++ programs.

February 6, 2008

libdbi version 0.8.3 offers improved error handling, some additional string escaping functions, and a couple of minor bugfixes.

November 12, 2007

Debian packages for "etch" (i386 and amd64) are now available. For further information, see the Download page.

February 20, 2007

libdbi version 0.8.2 adds support for timezones in TIME and DATETIME types and improves error handling. Some memory leaks were plugged. The configure switch "--disable-docs" allows to build libdbi from the CVS sources without having the SGML toolchain for the docs installed.

November 21, 2005

A new Cygwin binary tarball containing libdbi-0.8.1 as well as the libdbi-drivers-0.8.1 drivers for MySQL, PostgreSQL, and SQlite 2.8.x is available here. Remember that this is not a real Cygwin package, but a simple tarball that you should untar in /. It will install libdbi, the drivers, and all docs in the /usr/local hierarchy.

September 29, 2005

Thanks to David Nebauer, we now have our own Debian repository for up-to-date libdbi and libdbi-drivers packages. See the Download page for instructions.

September 28, 2005

libdbi version 0.8.1 fixes a critical bug in some of the string retrieval functions which would cause an empty string to be returned as NULL.

August 29, 2005

libdbi version 0.8.0 is available for download