← Back to team overview

drizzle-discuss team mailing list archive

New Client Library



I've been planning on writing a new client library for a couple months now, and recently have finally had time to research and design it. I was planning to develop and release this as it's own project, but with the news of Drizzle, I thought it would be a more appropriate place for it. Some key drivers for this project are:

1 - Support for asynchronous I/O. This would not just be for an entire connection, but be able to toggle this at different times throughout the connection (the socket code will always use ASIO, so it would be a simple flag for library behavior).

2 - Finer granularity of what to cache in large response (and when to do it). Be able to stream at the column or partial-column level (for large text/blob). For example, if you are pulling down a large BLOB, you could read it in smaller chunks to process or pass through in applications.

3 - Improved buffer management over existing library.

4 - BSD or LGPL license.

This will be written in C (no C++ for broader integration) and other language bindings can be built on it. I'll probably take some chunks of protocol code out of dormando's proxy code (since this is also BSD). Initially I'll be focusing on external client use and not internal server code use (like for replication), but eventually we could possibly work it in there too.

I'd appreciate your thoughts on it being part of drizzle, and any other features or design principles to focus on.


(apologies if you got two messages, my first one was from an email not registered with launchpad so it was probably blocked).

Follow ups