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.
Why you're switching your build system?
ReplyDeleteThe 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.
DeleteSwitching the build system isn't something I will personally be working on.
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.?
ReplyDeletePure 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).
DeleteI will look at Windows building in a future realeas.
Building on Windows is going to be fun once CMake is removed. Good luck ;)
DeleteMy guess is something MinGW based will be best when that happens. Or I could just create some Visual Studio files for it.
Delete