I'm
happy to announce an early release of the first open source,
super-scalable, comprehensive web development framework for
MongoDB, featuring strong integration with the Ext JS and Sencha
Touch client frameworks:
http://threecrickets.com/savory/
Savory is still in "Early Bird" mode and needs some more fleshing
out, testing and documentation, but the core features are all there
and ready to rumble.
FEATURES
The Savory Framework offers especially scalable and robust solutions
for common web application needs. A partial list includes:
- authentication, with support for logging in from Facebook,
Twitter, Windows Live and OpenID;
- fine-grained user permissions;
- new user registration, with captcha and email validation;
- email notification on a truly massive scale;
- per-user internationalization, with built-in consideration of
right-to-left languages;
- easy, fast text search with Lucene;
- discussion forums, including threaded comments that can be
attached to any documents;
- wiki-like functionality with support for site-wide revisions,
Tactile, Markdown and more;
- blog functionality, including support for Linkback and
Trackback;
- sitemap generation, supporting millions of URLs;
- JSON-RPC and XML-RPC, client and server;
- RSS syndication;
- shopping carts with PayPal integration;
- HTML forms with server- and client-side validation;
- Gravatar;
- robust support for asynchronous processing ("please wait while
searching for you flights...");
- and -- if you can believe it -- more...
We're especially pleased with Savory's Ext JS integration: within
minutes of dev work you can connect any MongoDB collection to a
client-side editable grid, tree or chart. A clean Ext Direct
implementation creates a seamless RPC from client to server.
Add Sencha Touch, and you get the fastest MongoDB-backed mobile app
development experience. Works on Android, iPhone, Blackberry.
General-purpose backend services include asynchronous events that
can be triggered anywhere in the cluster, a powerful data caching
mechanism, and a "DRM" (not ORM!) Document-Resource-Mapping system
that allows any MongoDB collection to be exposed as an editable
RESTful resource in your URI-space. (This offers a customizable
variation on MongoDB's REST API.)
Bored or bedazzled with this announcement already? Just jump to the
web site and check out all the cool, live demos.
THE DEVELOPMENT EXPERIENCE
Savory offers development agility comparable to that of Rails and
Django. Quickly generate HTML based on your data or throw it into
powerful Ext JS grids, trees and charts. It is, moreover, lighter
than the old SQL solutions: MongoDB's no-nonsense storage does away
with the need of a complex ORM layer. Instead, in Savory you work
with your data directly in JavaScript, or process it through
Savory's flexible iterator framework.
Development tools include a powerful web-based console (almost an
online IDE) and a beautiful source code documentation generator.
MongoVision is a recommended sister project.
In many ways Savory is a post-MVC, even post-object-oriented
framework: the architecture is designed to avoid complex
abstractions and layers that are nudged between your code, your data
and your subsystems. We don't like wasting time debugging such
layers or shoehorning them into our requirements. Nor do we like
hacking around an object's encapsulation when it does not fit a
simpler, more elegant solution. Never should we have to pay for what
we don't want or need.
If you've never used JavaScript on the server, you're in for a
pleasant surprise. A Scheme-like language with a C-like syntax, its
ability to throw closures everywhere allows for succinct clarity.
The combination of JavaScript on the server, in MongoDB and in the
client browser means that you never have to switch programming
paradigms, and can even share code between environments.
A SOLID BASE
Savory's announcement corresponds with the release of Prudence 1.1,
in which it runs.
Prudence is a container and platform for scalable, high-concurrency
RESTful web servers written in dynamic languages, featuring
JavaScript, PHP, Python, Ruby, Groovy and Clojure editions. Proper
caching is baked into its architecture: Prudence works with HTTP
(especially conditional HTTP) and robust cache backends (memcached,
MongoDB, SQL and Hazelcast) to make sure no representation is
generated more times than is absolutely necessary, and no bandwidth
is wasted. Prudence comes with a 100-page manual crammed with good
advice on how to build scalable, RESTful web applications.
Release 1.1 makes Prudence instantly "cloudable": running instances
on a network automatically discover each other and form a
high-availability cluster, which can all share state and distribute
tasks for redundancy and super-scalability. You can throw your
Savory app into a cloud right now. Tested with 100 nodes on EC2!
The scalable combination of Prudence and MongoDB can take your
backend very, very far. And Savory makes it even tastier.
"Our web development framework tastes better than yours."
Yours,
Tal Liron,
Three Crickets LLC