Nombo is an Open Source Node.js framework for building realtime web apps.
ScalabilityOther features include:
- Nombo is launched as multiple node processes - This is all automated; you just specify how many load balancers, workers and stores to use and Nombo takes care of deployment and management. This lets you use all CPU cores on your machine/instance.
- Worker processes are highly parallelized (share literally no resources - User data is bound only to the workers which need it) - This offers almost infinite vertical scalability.
- All HTTP assets are automatically minified and gzipped to reduce file size.
- Server side caching greatly minimizes disk IO operations.
- Strong client side caching greatly decreases application load time on subsequent visits and reduces the stress on your server.
- Nombo lets you bundle scripts, templates, stylesheets and images (images referenced in the CSS are also automatically loaded and cached).
- Customizable preload screen which shows accurate loading percentage when your app is accessed for the first time.
- From inside your client-side scripts you can call methods of server-side CommonJS modules called sims (Server Interface Modules). These let your clients easily interact with your backend.
- From inside sims you can react to client input by emitting events to particular sockets or sessions (a session is associated with a group of sockets belonging to the same client) or broadcast to all connected sockets.
- You can define middleware functions for various client-server interactions. For example there are middleware segments for dealing with HTTP requests and some for dealing with IO (socket) requests.
- You can easily store volatile in-memory data through a session object. This data will automatically be mapped to one of possibly multiple data stores based on your session ID.
- Multiple workers provide a more consistent performance.
- Worker crashes are completely transparent to clients. The worker is automatically respawned - All session data and server event handlers are kept intact.
- Client side scripts can be loaded statically (at compile time) or dynamically (at runtime).
- Client scripts have the same structure as server-side Node.js modules and Nombo SIMs (CommonJS) - Like Node.js modules, each script operates in its own isolated scope.
- Allows you to import scripts which have global scope (e.g. jQuery, jQuery UI, Backbone, AngularJS...) - In Nombo, these are referred to as libs (libraries).
|Seamless app-to-app interaction - Your apps can talk to each other with just one line of code. Use $n.remote.exec(remoteAppURL, simModuleName, data, callback). Listen to remote server events using $n.remote.watch(remoteAppURL, event, handler). Note that the remote app can choose whether or not to let you do this using its middleware functions.|
|Session management Using default nData or you can add your own such as MongoDB or Redis using middleware..|
|Authentication and authorization via middleware.|
|Comes with a default file upload feature based on Valums AJAX Uploader.|
|Can be extended with third-party node modules and client-side libraries. Inside app/server.node.js, use nombo.bundle.app.script(), nombo.bundle.app.style(), nombo.bundle.app.template(), nombo.bundle.framework.lib()... To bundle and preload important scripts into your app.|
Please check out the tutorials section to get started with the Nombo framework. If you'd like to get involved in any way, please do not hesitate to get in touch through GitHub.
You can get on our mailing list here.