/nitro-js

Nitro Web Application Framework

Primary LanguageJavaScript

Nitro

Nitro provides a library of carefully designed middleware and utilities for creating scalable, standards-compliant Web Applications with JavaScript. Nitro is build on top of Jack/JSGI, CommonJS and Rhino.

Nitro applications leverage (strict) Web Standards like XHTML/HTML, CSS, HTTP, XML, XSLT, ECMAScript 3.0, MicroFormats, etc. Typically, Nitro applications are a collection of programs that run on the server and the client. A control program dispatches work to the application programs and aggregates their output. The application's output is consumed by modern web browsers, web services or other applications through a standard REST interface.

Nitro is engineered to work great with Google App Engine.

Getting Started

An older version of Nitro was powered by [Narwhal](http://www.narwhaljs.org] but we have switched to RingoJS due to better support for Rhino. Still, we 'll try hard to keep future Nitro versions compatible with Narwhal.

To install Ringo, follow the instructions here:

http://ringojs.org/wiki/Getting_Started

Then, you should install the nitro package:

$ ringo-admin gmosx/nitro
$ ringo-admin gmosx/normal-template (optional, used in the example)

Finally, you are ready to run the simple example:

$ cd example
$ ringo config.js

The application will start listening at localhost:8080, so use your favourite browser to verify that everything works correctly.

For a more sophisticated example that implements a simple Blog on Google App Engine have a look at:

appengine-blog-example

For more details on Nitro, make sure you check out the documentation.

Google App Engine

Nitro applications run great on Google App Engine. Have a look at the appengine-blog-example example for a demonstration of using Nitro and appengine package to develop a simple Blog.

Directory structure

/docs: Contains documentation files in markdown format. The docs are published at www.nitrojs.org/docs

/lib: Contains the implementation of the web application framework

/example: Contains a simple example

/test: Contains unit and functional tests.

Related projects

Nitro is an ecosystem of Web Application development tools:

Other related projects:

Credits

This version of Nitro includes files from Jack (http://github.com/tlrobinson/jack). The copyright belongs to the Jack contributors.

License

Copyright (c) 2009-2010 George Moschovitis, http://www.gmosx.com

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.