client apis body<=

An object-oriented Perl module can be found on CPAN as `Cache::Memcached` or downloaded here.

- Cache-Memcached-1.14.tar.gz, GPL/Artistic. [ChangeLog]

The API takes advantage of the server's opaque flag support and sets its "complex" flag whenever the object being stored or retrieved isn't a plain scalar. In that case, the `Storable` module is used to freeze and thaw the value automatically going in and out of the memcached.

Several PHP APIs are available:

- http://phpca.cytherianage.net/memcached/
- http://pecl.php.net/package/memcache/ -- implemented in C, but doesn't support multiple memcached servers
- ... (many others, send me links?)

An object-oriented Python module modelled after the Perl one is also included in the distribution. It includes Pickle/cPickle support (like Perl's Storable).

- python-memcached-1.2.tar.gz, Python license. [ChangeLog]

The Python API, while tested, has not experienced real-world production use. Also, its performance could be optimized (less syscalls parsing responses), if anybody out there would care to improve it.

Please contact us to take over its development.

A Ruby API is available from Michael Granger at:

- http://www.deveiate.org/code/Ruby-MemCache.html

A Java API is maintained by Greg Whalin from Meetup.com. You can find that library here:

- http://www.whalin.com/memcached/ -- Java API for memcached

Multiple C libraries for memcached exist:

- apr_memcache by Paul Querna; Apache Software License version 2.0
- libmemcache by Sean Chittenden; BSD license.

To write a new client, check out the protocol docs. Be aware that the most important part of the client is the hashing across multiple servers, based on the key, or an optional caller-provided hashing value. Feel free to join the mailing list (or mail me directly) for help, inclusion in CVS, and/or a link to your client from this site.

<=body page?>