Top-level Files of tip

Files in the top-level directory from the latest check-in

A libtabula Primer

What It Is

libtabula is a C++ wrapper for multiple C database APIs including SQLite, MariaDB, and MySQL's Connector/C. It is built around STL principles to make dealing with the database as easy as dealing with an STL container. libtabula relieves the programmer of dealing with cumbersome C data structures, generation of repetitive SQL statements, and manual creation of C++ data structures to mirror the database schema.

libtabula's home page is

libtabula forked from MySQL++ 3.2.1 in May 2014. The name change reflects the fact that libtabula works with more than just MySQL and its API-compatible forks.


To build a release version of libtabula, you must have the C API development files installed for the DBMSes you want libtabula to work with.

To build a version checked out from the Fossil repository, see the HACKERS file.

Additional Things to Read

Each major platform we support has a dedicated README-*.md file for it containing information specific to that platform. Please read it:

For authorship information, see the CREDITS file.

For license information, see the COPYING file.

If you want to change libtabula, see the HACKERS file.

You should have received a user manual and a reference manual with libtabula. If not, you can read a recent version online.

Search the libtabula mailing list archives if you have more questions.

Building the Library

libtabula uses CMake to generate platform-specific build files from a platform-independent set of build rules. We have successfully used it to build libtabula under these native build system types:

CMake can generate many other kinds of IDE project files, but we have either not tried it, or have not succeeded with it. Success reports and patches are welcome on the mailing list.3

Example Programs

You may want to try out the programs in the examples subdirectory to ensure that libtabula is working correctly in its own right as well as working properly with your DBMS.

These examples give many examples of the proper use of libtabula. See the examples README for further details.

Unsupported Compliers

If you're on Windows but want to use some other compiler besides Visual C++ or GCC, you are currently on your own. There have been past efforts to port libtabula to other Windows compilers, but for one reason or another, all of these ports have died.

On Unixy systems, GCC and Clang work best. "Native" compilers and third-party compilers may work, but you're on your own to get it working.

We have nothing in particular against these unsupported systems. We just lack the time and interest to support everything ourselves. If you are sufficiently motivated to get libtabula working on one of these alternate systems, see the HACKERS file first for guidance. If you follow the advice in that file, your patch will be more likely to be accepted.

If You Want to Hack on libtabula...

If you intend to change the library or example code, please read the HACKERS file.

If you want to change the user manual, read the doc README

If you want to change the reference manual, see the Doxygen manual.