Hi!

On Jul 25, 2008, at 9:03 PM, Eric Day wrote:

Question for the group: How much do we care about external dependencies for the client library? For example, libevent is already being used in the server, and there is certainly room to use this in the client code. I don't expect many other external non-core dependencies (if any), but I was curious if the "use common OSS libs as much as possible" rule applies to the client lib as well. The reason we may want to keep it dependency free is if it ends up being built on other systems than the server supports (like windows, but libevent does work there too).

I think we need a simple KISS library, though I would also love to see an async built around libevent...

Cheers,
        -Brian



One other thing I forgot to mention in the first email is that the new client library will have support for multiple versions of the wire protocol. For example, we can support any new changes for drizzle alongside the various MySQL protocols.

-Eric

On Jul 24, 2008, at 12:26 PM, Eric wrote:

Hi!

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.

Thanks!
-Eric

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


_______________________________________________
Mailing list: https://launchpad.net/~drizzle-discuss
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~drizzle-discuss
More help   : https://help.launchpad.net/ListHelp

--
_______________________________________________________
Brian "Krow" Aker, brian at tangent.org
Seattle, Washington
http://krow.net/                     <-- Me
http://tangent.org/                <-- Software
_______________________________________________________
You can't grep a dead tree.




_______________________________________________
Mailing list: https://launchpad.net/~drizzle-discuss
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~drizzle-discuss
More help   : https://help.launchpad.net/ListHelp

Reply via email to