| 10 | | |
| 11 | | <?h1 Perl API h1?> |
| 12 | | |
| 13 | | <p> An object-oriented Perl module can be <a href="http://search.cpan.org/dist/Cache-Memcached/">found |
| 14 | | on CPAN</a> as <tt>Cache::Memcached</tt> or <a href="http://code.sixapart.com/svn/memcached/trunk/api/perl/"> |
| 15 | | in Subversion</a> (<a href="http://code.sixapart.com/svn/memcached/trunk/api/perl/ChangeLog">ChangeLog</a>). |
| 16 | | (GPL/Artistic)</p> |
| 17 | | |
| 18 | | <p>The Perl API takes advantage of the server's opaque flag support and |
| 19 | | sets its "complex" flag whenever the object being stored or retrieved |
| 20 | | isn't a plain scalar. In that case, the <tt>Storable</tt> module is |
| 21 | | used to freeze and thaw the value automatically going in and out of |
| 22 | | the memcached.</p> |
| 23 | | |
| 24 | | <p>There is also Cache::Memcached::Fast---another Perl client written in C, |
| 25 | | largely compatible with the original Cache::Memcached. Available on CPAN at <a |
| 26 | | href="http://search.cpan.org/dist/Cache-Memcached-Fast/">http://search.cpan.org/dist/Cache-Memcached-Fast/</a>.</p> |
| 27 | | |
| 28 | | <?h1 PHP API h1?> |
| 29 | | |
| 30 | | <p>There are tons of PHP libraries available, in different conditions. But it now seems there's an official one:</p> |
| 31 | | <ul> |
| 32 | | <li><a href="http://pecl.php.net/package/memcache">PHP PECL memcached client</a> -- official PHP client</li> |
| 33 | | </ul> |
| 34 | | |
| 35 | | <?h1 Python API h1?> |
| 36 | | |
| 37 | | <p>The Python client we'd previously released was just a prototype, and we don't have regular Python programmers on hand. The folks at Tummy.com have took over maintenance. See <a href="ftp://ftp.tummy.com/pub/python-memcached/">ftp://ftp.tummy.com/pub/python-memcached/</a> for the latest versions.</p> |
| 38 | | |
| 39 | | <?h1 Ruby API h1?> |
| 40 | | |
| 41 | | <ul> |
| 42 | | <li><a href="http://www.deveiate.org/code/Ruby-MemCache.html">http://www.deveiate.org/code/Ruby-MemCache.html</a></li> |
| 43 | | <li>gem install memcache-client</li> |
| 44 | | <li><a href="http://blog.evanweaver.com/files/doc/fauna/memcached/">http://blog.evanweaver.com/files/doc/fauna/memcached/</a>. C backed client wrapping libmemcached. |
| 45 | | </ul> |
| 46 | | |
| 47 | | <?h1 Java API h1?> |
| 48 | | <p>A Java API is maintained by <a href="mailto:greg@meetup.com">Greg Whalin</a> from <a href="http://www.meetup.com/">Meetup.com</a>. You can find that library here: |
| 49 | | |
| 50 | | <ul> |
| 51 | | <li><a href="http://www.whalin.com/memcached/">http://www.whalin.com/memcached/</a> -- Java API for memcached</li> |
| 52 | | </ul> |
| 53 | | |
| 54 | | <p>An improved Java API maintained by Dustin Sallings is also available. Aggressively optimised, ability to run async, supports binary protocol, etc. See site for details: |
| 55 | | |
| 56 | | <ul> |
| 57 | | <li><a |
| 58 | | href="http://bleu.west.spy.net/~dustin/projects/memcached/">http://bleu.west.spy.net/~dustin/projects/memcached/</a> -- Improved Java API for memcached</li> |
| 59 | | </ul> |
| 60 | | |
| 61 | | <?h1 C# API h1?> |
| 62 | | <p>There are multiple C# APIs: |
| 63 | | |
| 64 | | <ul> |
| 65 | | <li><a href="https://sourceforge.net/projects/memcacheddotnet/">https://sourceforge.net/projects/memcacheddotnet/</a></li> |
| 66 | | <li><a href="http://www.codeplex.com/EnyimMemcached/">http://www.codeplex.com/EnyimMemcached/</a> - Client developed in .NET 2.0 keeping performance and extensibility in mind. (Supports consistent hashing.)</li> |
| 67 | | <li><a href="http://code.google.com/p/beitmemcached/">http://code.google.com/p/beitmemcached/</a> - Client developed by BeIT with many new features.</li> |
| 68 | | </ul> |
| 69 | | |
| 70 | | <?h1 C API h1?> |
| 71 | | <p>Multiple C libraries for memcached exist:</p> |
| 72 | | <ul> |
| 73 | | <li><a href="http://www.outoforder.cc/projects/libs/apr_memcache/">apr_memcache</a> by Paul Querna; Apache Software License version 2.0</li> |
| 74 | | <li><a href="http://tangent.org/552/libmemcached.html">libmemcached</a> by Brian Aker; BSD license. This is a new library, under heavy development.</li> |
| 75 | | <li><a href="http://people.freebsd.org/~seanc/libmemcache/">libmemcache</a> by Sean Chittenden; BSD license. This is the original C library. It is no longer under active development. You should try libmemcached instead.</li> |
| 76 | | </ul> |
| 77 | | |
| 78 | | <?h1 Postgres API h1?> |
| 79 | | <p>The pgmemcache project allows |
| 80 | | you to access memcache servers from Postgresql Stored Procedures and Triggers. |
| 81 | | More details and downloads are available at:</p> |
| 82 | | |
| 83 | | <ul> |
| 84 | | <li><a href="http://pgfoundry.org/projects/pgmemcache/">http://pgfoundry.org/projects/pgmemcache/</a></li> |
| 85 | | </ul> |
| 86 | | |
| 87 | | <?h1 Chicken Scheme h1?> |
| 88 | | <ul> |
| 89 | | <li><a href="http://chicken.wiki.br/memcached">http://chicken.wiki.br/memcached</a> -- Chicken Scheme library</li> |
| 90 | | </ul> |
| 91 | | |
| 92 | | <?h1 Lua h1?> |
| 93 | | <ul> |
| 94 | | <li><a href="http://luamemcached.luaforge.net/">http://luamemcached.luaforge.net/</a> -- Lua library</li> |
| 95 | | </ul> |
| 96 | | |
| 97 | | <?h1 MySQL API h1?> |
| 98 | | <p>The memcache_engine allows memcache to work as a storage engine to MySQL. |
| 99 | | This means that you can SELECT/UPDATE/INSERTE/DELETE from it as though it is a |
| 100 | | table in MySQL. |
| 101 | | </p> |
| 102 | | <ul> |
| 103 | | <li><a href="http://tangent.org/index.pl?node_id=506">memcache_engine</a></li> |
| 104 | | </ul> |
| 105 | | <p>A set of MySQL UDFs (user defined functions) to work with memcached using |
| 106 | | libmemcached. |
| 107 | | </p> |
| 108 | | <ul> |
| 109 | | <li><a href="http://tangent.org/586/Memcached_Functions_for_MySQL.html">MySQL |
| 110 | | UDFs for memcached</a></li> |
| 111 | | </ul> |