This repository has been archived on 2018-06-04. You can view files and clone it, but cannot push or open issues/pull-requests.
Go to file
Ray Slakinski f7bae96d11 reorder vars 2010-11-23 19:54:22 -05:00
pylibmc Turn pylibmc into a shallow package 2010-10-08 22:03:39 +02:00
.gitignore Fix up .gitignore 2010-03-16 23:00:50 +01:00
LICENSE Initial import into git! 2009-07-27 16:10:43 +02:00 Add missing ``pylibmc-versio.h`` to manifest. 2009-09-21 22:46:36 +02:00
README.rst Add changelog for 1.1.1 2010-06-07 16:06:00 +02:00
TODO Note UDP/binary in todo. 2009-09-21 15:41:09 +02:00
_pylibmcmodule.c reorder vars 2010-11-23 19:54:22 -05:00
_pylibmcmodule.h reorder vars 2010-11-23 19:54:22 -05:00
coders.rst Instigate The List of Honored Men 2010-10-08 22:02:25 +02:00
pooling.rst Add some URL references. 2009-09-21 15:54:21 +02:00
pylibmc-version.h Prepare pylibmc 1.1.1 release 2010-06-07 15:23:41 +02:00 Turn pylibmc into a shallow package 2010-10-08 22:03:39 +02:00 Nitpick program flow of client.gets and others 2010-10-08 22:02:36 +02:00


`pylibmc` is a quick and small Python client for memcached__ written in C.


It builds on the famous `libmemcached`__ C client from TangentOrg__, notable for
its speed and flexibility.


`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


Comparison to other libraries

Why use `pylibmc`? Because it's fast.

`See this (a bit old) speed comparison`__, or `'s comparison`__.



Building needs libmemcached and optionally zlib, the path to which can be
specified using command-line options to ````

    Build against libmemcached in DIR
    Build against zlib in DIR
    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


``#sendapatch`` on ````.

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


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`
- 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 ``, which should make pylibmc work under
  Snow Leopard.
- Add support for the boolean datatype.
- Improved test-runner -- now tests ``build/lib.*/`` 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.