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.
Download
You can download it now from
Launchpad along with the documentation. The download page is
here.