DPM homepage http://consoleninja.net/code/dpm/rel/dpm-r4.tar.gz - tarball of r4
git clone
http://consoleninja.net/code/dpm/dpm.git - to get the latest code, always
http://consoleninja.net/code/dpm/dpm-export.tar.gz - a tarball of the latest code, for those unwilling to git it.
It's been a long time. I suck. One of these days I'll be productive enough to pop out releases.
Unfortunately I've been sitting on this one for a long time. There are significant API updates in this one, but I've cut it just short of being really good. Impatient :)
Notable API changes:
- All instances of 'myp' have been renamed to 'dpm' for coherency.
- New 'dpml' lua-based library. Most demos updated to use it. While the low level API offers a huge amount of flexibility, it's barely usable by a novice. The goal of 'dpml' is to provide pure lua wrappers around the low level API to emulate functions you might normally expect.
- Start of a programming manual in doc/API.txt
- 'server_status' flags are now accessable in lua, off of eof packets. This means you may detect whether a transaction is in use, if autocommit mode is enabled, if an index was missed, etc. All becoming easier to use with advances in the dpml library.
- New demo "demo-lib.lua" which shows off some of the dpml library functions.
- startup.lua, etc, updated for API changes.
- Callback system has been optimized. This is one case of a 5x+ speedup while keeping the API almost completely the same. The hacky proxy_until functions have been removed since it's always fast now.
- Package level callbacks have been added. All connections have callbacks wired directly into them, but there now exists floating callback structures. You may use this convention to temporarily take over a connection's callbacks from within a library. The dpml command 'connect_mysql_server' uses this, and demo-autoexplain.lua has a more clear example of its use.
I love the way this works :) It's now easy to build standard packages to build resultsets, handle resultsets, authentication, error conditions, etc.
- dpm.close() command for forcefully closing a connection. ;)
Other changes:
- Small number of bugfixes, mostly related to testing the API. It's now possible to actually set username/passwords when connecting to a server, to read/change server_status flags, etc.
- Fix from John Loehrer to allow buillding on OS X (intel, I think?)
Sweet :)
Now, release 5 will be a ways off. Will be pushing smaller changes into the head of git more often, but I will be dedicating more of my spare time over the next two weeks to other things. That doesn't mean work stops, so if you're going to use it and contribute back, still please do! :)