A local SimpleDB server
It currently supports the “2007-11-07” SimpleDB API level but has been hacked to fake support for “2009-04-15”—this has not been tested much!
simpledb-dev2 provides a local SimpleDB server, so you can develop offline, without requiring a SimpleDB account. It has been tested on Linux, macOS and Windows.
This package currently implements:
- The whole “2007-11-07” REST API
- Correct HTTP error responses as per the technical documentation
- A large suite of tests created from the examples provided in the technical documentation
It does not implement:
- The SOAP API
- Authentication—signature value checking
- Timestamp format and expiration checking
To run the simpledb-dev2 server, you’ll need a working Python 2.7 installation. You can install using pip as follows:
pip install simpledb-dev2
This will install the package and its dependencies including web.py. Specify the --user option to the pip command line to install for the current user only.
This will create a simpledb-dev2 script/executable on your path. You can start the simpledb-dev2 web server as follows:
This will serve the SimpleDB API on the default port of 8080. To specify an alternative port, use the --port option:
simpledb-dev2 serve --port 1234
If the server doesn’t start, or you have other problems, it’s pretty easy to run the tests and see some examples of request/response:
Remember, this is a development tool, and not meant for storing or querying large amounts of data—I do not know yet how big you can get before running into issues, but I suspect that with the current storage and querying design it is not that large :o) Now that I have a base, I may start trying to see how I can improve the performance…
Although this conforms to the specifications in the technical documentation, simpledb-dev2 has not been tested with every possible SDB client library, and I am looking forward to people in the OSS community trying to find bugs and peculiarities—it is after all, a work in progress!
So enjoy developing your SimpleDB applications now, not later!
- Fork this repository
- Create a feature branch (git checkout -b feature-branch)
- Commit your changes (git commit -m "Added support for the new API version")
- Push to an upstream branch (git push -u origin feature-branch)
- Create a pull request describing your fix/feature
Released under GNU General Public License v3 (GPLv3)