1. 2

Worked on this at $dayjob, and we open sourced it yesterday.

Initial driving requirements were:

  • Use as part of proof-of-concept testing with a 3rd party memcache proxy that speaks only the binary protocol
  • Work well with darner/kestral queues and nosql datastores (via proxies like couchbase’s Moxi). This means no silent failure modes.
  • Support both text and binary memcache protocols (selectable backend/proto “drivers”).
  • Work with gevent/eventlet; socket monkey-patchable.
  • Faster compression. Many libraries use gzip, which is slower than we would like. Chose python-lz4 as compressor (speed/space tradeoff).
  • Support pickling (some drivers do not)
  • Reduce internal library proliferation. We are using a couple different existing memcache drivers for different things internally, and the plan is to use this to replace all of them.
  1.