views:

814

answers:

3

For my little framework Pyxer I would like to to be able to use the Google AppEngine datastores also outside of AppEngine projects, because I'm now used to this ORM pattern and for little quick hacks this is nice. I can not use Google AppEngine for all of my projects because of its's limitations in file size and number of files.

A great alternative would also be, if there was a project that provides an ORM with the same naming as the AppEngine datastore. I also like the GQL approach very much, since this is a nice combination of ORM and SQL patterns.

Any ideas where or how I might find such a solution? Thanks.

+5  A: 

Nick Johnson, from the app engine team himself, has a blog posting listing some of the alternatives, including his BDBdatastore.

However, that assumes you want to use exactly the same ORM that you use now in app engine. There are tons of ORM options in general out there, though I am not familiar with the state of the art in Python. This question does seem to address the issue though.

Peter Recore
Thanks, these are very useful hints. The blog post includes a lot of interesting links. As far as I understand there is no real effort in 'cloning' the AppEngine database outside and standalone of the Google AppEngine arrangement. I think I will use one of the existing Python frameworks like Autumn or Storm and pimp them a bit to fit my special needs. Thank you very much for this very very informative answer!
Holtwick
BDBDatastore _is_ a clone of the App Engine database model outside App Engine. It's aimed at smaller deployments (eg, where a single live datastore server is sufficient), though - for bigger deployments, there's HBase/Hypertable.
Nick Johnson
+1  A: 

You might also want to look at AppScale, which is "a platform that allows users to deploy and host their own Google App Engine applications".

It's probably overkill for your purposes, but definitely something to look into.

jgeewax
A: 

There is also the Remote API which the bulkloader tool uses to upload or download data into/from the Datastore.

Maybe it could be used to have applications which are not hosted on AppEngine to still use the Datastore there.

Thilo