127 lines
3.8 KiB
ReStructuredText
127 lines
3.8 KiB
ReStructuredText
`pylibmc` is a quick and small Python client for memcached__ written in C.
|
|
|
|
__ http://memcached.org/
|
|
|
|
It builds on the famous `libmemcached`__ C client from TangentOrg__, notable for
|
|
its speed and flexibility.
|
|
|
|
__ http://tangent.org/552/libmemcached.html
|
|
__ http://tangent.org/
|
|
|
|
`libmemcached` must be installed separately, and be available to the compiler
|
|
and linker.
|
|
|
|
For installation instructions, usage notes and reference documentation, see
|
|
pylibmc__'s home at http://sendapatch.se/projects/pylibmc/.
|
|
|
|
__ http://sendapatch.se/projects/pylibmc/
|
|
|
|
Comparison to other libraries
|
|
=============================
|
|
|
|
Why use `pylibmc`? Because it's fast.
|
|
|
|
`See this (a bit old) speed comparison`__, or `amix.dk's comparison`__.
|
|
|
|
__ http://lericson.blogg.se/code/2008/november/pylibmc-051.html
|
|
__ http://amix.dk/blog/viewEntry/19471
|
|
|
|
Installation
|
|
============
|
|
|
|
Building needs libmemcached and optionally zlib, the path to which can be
|
|
specified using command-line options to ``setup.py``
|
|
|
|
``--with-libmemcached=DIR``
|
|
Build against libmemcached in DIR
|
|
``--with-zlib=DIR``
|
|
Build against zlib in DIR
|
|
``--without-zlib``
|
|
Disable zlib (disables compression)
|
|
|
|
So for example, if one were to use MacPorts to install libmemcached, your
|
|
libmemcached would end up in ``/opt/local``, hence
|
|
``--with-libmemcached=/opt/local``.
|
|
|
|
IRC
|
|
===
|
|
|
|
``#sendapatch`` on ``chat.freenode.net``.
|
|
|
|
Change Log
|
|
==========
|
|
|
|
New in version 1.1
|
|
------------------
|
|
|
|
- Removed deprecated space-based behavior names.
|
|
- Acquire and release the GIL properly, thanks ketralnis__
|
|
- Add support for ``libmemcached 0.40``
|
|
- Included a more useful command-line interface
|
|
- Fixed handling of NUL-byte keys in ``get_multi`` in binary protocol
|
|
- Fixed some valgrind-reported memory warnings
|
|
- Fixed bogus usage of time argument for delete.
|
|
- 1.1.1: Fixed tests under Python 2.5
|
|
|
|
__ http://www.ketralnis.com/
|
|
|
|
New in version 1.0
|
|
------------------
|
|
|
|
- Lots of documentation fixes and other nice things like that.
|
|
- Nailed what appears to be the last outstanding memory leak.
|
|
- Explicitly require libmemcached 0.32 or newer.
|
|
|
|
New in version 0.9
|
|
------------------
|
|
|
|
- Added a ``get_stats`` method, which behaves exactly like
|
|
`python-memcached`'s equivalent.
|
|
- Gives the empty string for empty memcached values like `python-memcached`
|
|
does.
|
|
- Added exceptions for most `libmemcached` return codes.
|
|
- Fixed an issue with ``Client.behaviors.update``.
|
|
|
|
New in version 0.8
|
|
------------------
|
|
|
|
- Pooling helpers are now available. See ``pooling.rst`` in the distribution.
|
|
- The binary protocol is now properly exposed, simply pass ``binary=True`` to
|
|
the constructor and there you go.
|
|
- Call signatures now match `libmemcached` 0.32, but should work with older
|
|
versions. Remember to run the tests!
|
|
|
|
New in version 0.7
|
|
------------------
|
|
|
|
- Restructured some of the code, which should yield better performance (if not
|
|
for that, it reads better.)
|
|
- Fixed some memory leaks.
|
|
- Integrated changes from `amix.dk`, which should make pylibmc work under
|
|
Snow Leopard.
|
|
- Add support for the boolean datatype.
|
|
- Improved test-runner -- now tests ``build/lib.*/_pylibmc.so`` if available,
|
|
and reports some version information.
|
|
- Support for x86_64 should now work completely.
|
|
- Builds with Python 2.4, tests run fine, but not officially supported.
|
|
- Fixed critical bugs in behavior manipulation.
|
|
|
|
New in version 0.6
|
|
------------------
|
|
|
|
- Added compatibility with `libmemcached` 0.26, WRT error return codes.
|
|
- Added `flush_all` and `disconnect_all` methods.
|
|
- Now using the latest pickling protocol.
|
|
|
|
New in version 0.5
|
|
------------------
|
|
|
|
- Fixed lots of memory leaks, and added support for `libmemcached` 0.23.
|
|
- Also made the code tighter in terms of compiler pedantics.
|
|
|
|
New in version 0.4
|
|
------------------
|
|
|
|
- Renamed the C module to `_pylibmc`, and added lots of `libmemcached` constants
|
|
to it, as well as implemented behaviors.
|