CloudKit: RESTful JSON Storage Rack Appliance
Apologies for the buzzword collision in the title, but Cloudkit really is a RESTful JSON-powered storage appliance that uses Rack! Think of it as a schema-less, HTTP accessible database of sorts - like CouchDB without some of the more advanced features. It's all written in Ruby and makes it ridiculously easy to set up a fully discoverable, RESTful, JSON API.
In the Release: CloudKit 0.9 blog post, developer Jon Crosby demonstrates how easy it is to get Cloudkit up and running. Just two lines in a config.ru file and you're ready to roll with the basic featureset. If you want to add OpenID and OAuth support, just change a word and it's all running. Jon explains further:
CloudKit is built around HTTP and JSON for the purpose of building efficient APIs quickly. It’s a bit like CouchDB with baked-in Open Web auth plus the entire spectrum of Rack middleware at its disposal. The automatic version history for each JSON document is provided as an aid for decentralized or occasionally-connected clients, allowing a progressive diff/merge against history to “catch up” in the case of conflicts.
Thanks to Rack, you can run CloudKit on its own or alongside other Rack-based apps or middleware components such as Rails, Merb, or Sinatra. Any requests outside of the named collection scopes or authentication endpoints are passed along to the next piece in the stack.
If you’re interested in hacking, the source is on GitHub.
You want documentation? There's plenty of it. CloudKit's REST API is outlined quickly and cleanly, and a Curl-oriented tutorial (an ideal walkthrough to get up to speed with CloudKit's features) is also available.
I'm looking forward to playing with this more. It seems like it could make an interesting back-end to Sinatra-powered microapps.