Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (
Help us improve Python packaging - Donate today!

Python implementation of MimicDB

Project Description

Python Implementation of MimicDB

The Python implementation of MimicDB works with the Boto library and several different backends including Redis.


By default, MimicDB requires Redis (although other backends can be used instead).

$ pip install boto
$ pip install redis
$ pip install mimicdb


If you’re using Boto already, replace boto imports with mimicdb imports.


from boto.s3.connection import S3Connection
from boto.s3.key import Key


from mimicdb.s3.connection import S3Connection
from mimicdb.s3.key import Key

Additionally, import the MimicDB object itself, and initiate the backend:

from mimicdb import MimicDB

After establishing a connection for the first time, sync the connection to save the metadata locally:

conn = S3Connection(KEY, SECRET)

Or sync only a couple buckets from the connection:

conn.sync('bucket1', 'bucket2')

After that, upload, download and list as you usually would. API calls that can be responded to locally will return instantly without hitting S3 servers. API calls that are made to S3 using MimicDB will be mimicked locally to ensure consistency with the remote servers.

Pass force=True to most functions to force a call to the S3 API. This also updates the local database.

Alternate Backends

Besides the default Redis backend, MimicDB has SQLite and in-memory backends available.

from mimicdb.backends.sqlite import SQLite
from mimicdb.backends.memory import Memory



  1. Fork the repo.
  2. Run tests to ensure a clean, working slate.
  3. Improve/fix the code.
  4. Add test cases if new functionality introduced or bug fixed (100% test coverage).
  5. Ensure tests pass.
  6. Push to your fork and submit a pull request to the develop branch.


Run tests after installing nose and coverage.

$ nosetests --with-coverage --cover-package=mimicdb

Integration testing is provided by Travis-CI at

Test coverage reporting is provided by Coveralls at


Run in the root of the repo:

$ python
Boto Time: 0.338411092758
MimicDB Time: 0.00015789039612
Factor: 2143x faster


MimicDB is BSD licensed.

Release History

Release History

This version
History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


Download Files

Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
MimicDB-1.0.5.tar.gz (8.3 kB) Copy SHA256 Checksum SHA256 Source Apr 20, 2015

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting