Sunday, 9 December 2012

Libdrizzle Redux 5.0-alpha1 Released!

Over the past few months I have been spending my spare time on a new project.  A new version of libdrizzle which is much simpler to use and with many new features.  Today the first version of this MySQL compatible client is released, called Libdrizzle Redux.

Why 5.0?  Because Libdrizzle 1.0 and 2.0 have already been released, in packaging versions 3.0 and 4.0 used as API revisions.  So 5.0 is the fresh start.

Main Features

These are the main features of the library:

  • A BSD licensed MySQL compatible C connector, so you can statically link it with commercial software
  • A simplified API compared to Libdrizzle.  No more confusion over whether the client or library should be allocating/freeing.  There isn't a big difference to the MySQL C API for most things.
  • New documentation, PDF for now web based coming soon.
  • A new binlog reading API.  This can connect as a MySQL slave or mysqlbinlog client and get each event from the binary log.

Differences from Libdrizzle

Whilst based on Libdrizzle, Libdrizzle Redux has had an overhaul:

  • The API is a little different from the older Libdrizzle library, for the most part it has been simplified
  • The server-side API has been stripped out, this is now a client-only connector
  • The new Binlog API
  • Improved documentation

Still to Come

These is still a lot of work to do.  There are several features I want to get in over the next 6 months and improve the features we already have.  Some example of the improvements needed are:

  • Improvements to documentation with better examples and a breakdown of the explanation of the examples and how they work
  • More tests!  Testing against more platforms too
  • A different build system.  I used CMake for now for RAD purposes, Brian Aker is already working on switching this out for an autotools based system.
  • Server-side prepared statement support
  • Several new client projects using this library

This is a fully open source project, so anyone can come along and hack on it.


You can download it now from Launchpad along with the documentation.  The download page is here.


  1. Why you're switching your build system?

    1. The original Drizzle build system was autotools based. I switched to CMake when pulling this code out for RAD (I can work with it faster than autotools when starting a project). But most other developers don't like working with CMake.

      Switching the build system isn't something I will personally be working on.

  2. What dependencies does it have? Is it fully cross-platform (including Windows) written in pure C/C++ or does it still have dependencies on Perl etc.?

    1. Pure C, it doesn't compile in Windows yet (mostly due to the stdint.h, and poll support for XP/2003, easy to fix). OpenSSL and CMake are the only deps (and python-sphinx for HTML docs, latex for PDF docs).

      I will look at Windows building in a future realeas.

    2. Building on Windows is going to be fun once CMake is removed. Good luck ;)

    3. My guess is something MinGW based will be best when that happens. Or I could just create some Visual Studio files for it.