/shove

Common object storage frontend that supports dictionary-style access, object serialization and compression, and multiple storage and caching backends.

Primary LanguagePythonOtherNOASSERTION

Common object storage frontend that supports dictionary-style access, object serialization and compression, and multiple storage and caching backends.

Currently supported storage backends are:

  • Amazon S3 Web Service
  • Apache Cassandra
  • Berkeley Source Database
  • DBM
  • Durus
  • FTP
  • Filesystem
  • Firebird
  • git
  • HDF5
  • LevelDB
  • Memory
  • Mercurial
  • Microsoft SQL Server
  • MongoDB
  • MySQL
  • Oracle
  • PostgreSQL
  • Redis
  • SQLite
  • Subversion
  • Zope Object Database (ZODB)

Currently supported caching backends are:

  • Filesystem
  • Firebird
  • Memory
  • Microsoft SQL Server
  • MySQL
  • Oracle
  • PostgreSQL
  • Redis
  • SQLite
  • memcache

The simplest shove use case is:

>>> from shove import Shove
>>> store = Shove()

which creates an in-memory store and cache.

The use of other backends for storage and caching involves passing an module URI or existing store or cache instance to shove following the form:

>>> from shove import Shove
>>> <storename> = Shove(<store_uri>, <cache_uri>)

Each module-specific URI form is documented in its module. The URI form follows the URI form used by SQLAlchemy:

http://www.sqlalchemy.org/docs/core/engines.html

shove fully implements the Python dictionary/mapping API:

http://docs.python.org/lib/typesmapping.html