A fake version of Amazon's SimpleDB. Local, in-memory, consistent, deployed as a war.
The entire REST API (Query, Select, etc.) is implemented in ~750 lines of Scala.
The easiest way is to get the
fakesdb-standalone-1.5.jar from github and run:
java -jar fakesdb-standalone-1.5.jar
This will start up an embedded instance of Jetty on port 8080. You can pass
-Dport=X to specify a different port.
If you're already running a J2EE container and want to deploy
fakesdb there, you can download
fakesdb-1.5.war also from github.
To facilitate testing, issuing a
DomainName=_flushwill reset all of the data
SelectParserprobably has some bugs in it--the grammar is fairly off-the-cuff.
QueryParsershould be pretty solid.
Typica is used for unit testing the server's responses
If you're using the
typicaJava SimpleDB client, versions through 1.6 only use port 80, even when given a non-80 setting. So you'll either have to run
fakesdbon port 80 or else redirect port 80 traffic to 8080 with a firewall rule.
- 2.4 - 23 Aug 2011
- Upgrade to Scala 2.9.0-1 and Jetty 8.0.0.RC0
- Make new
fakesdb-testing.jarwhich has jetty but not scala-library
- 2.3 - 23 Aug 2011
Jettybootstrap classes from
- 2.2 - 25 Apr 2011
- BatchDeleteAttributes support (Alexander Gorkunov)
- Partial Select support (Alexander Gorkunov)
- Pre-2.2 various releases
build.xmlhack over to
- Hook up the test suite to
sbtso that it is scripted
- Loading the SDB URL in a browser (e.g. without a REST action) should display all of the current data
Release It talks about having "fake" (better term?) versions of systems like
fakesdbpurposefully lock up, fail, etc., to test how your real application responds--it would be cool to flip
fakesdbinto several error modes either via a web UI or meta-domains (like the current