npm.io
0.3.9 • Published 12 years agoCLI

largemouth

Licence
MIT
Version
0.3.9
Deps
4
Vulns
7
Weekly
0
Stars
5

LargeMouth an open BAAS Build Status

An open BAAS with a similar API to firebase.

##Motivation Firebase is a Backend As A Service (BAAS) which allows developers to quickly build applications without worrying about the communication layer between the server and client. Firebase is awesome but the backend remains entirely proprietary. LargeMouth / SmallMouth attempt to recreate the Firebase api as an open-source project. Idealy a Firebase app could be easily moved to SmallMouth and vice versa.

LargeMouth is built on top of Socket.io and NodeJS.

##Installation

npm install -g largemouth

##Boot Options Change the server port (3000 default):

largemouth -p 3000

Change the location of the configuration file (working directory largemouth.js default):

largemouth -c ../myConfig.js

##SmallMouth SmallMouth is the client side library.

##Configuration Server configuration is defined within a JavaScript file by default located within the working directory of where LargeMouth is run. The config file allows the following:

  • Permissions - The security permission definition.
  • Custom events - Define custom events which the server will listen for.

An example config file:

module.exports = function(largemouth) {

	// Optionally define the server port here (commandline will override this value)
	largemouth.port = 3000;[[

	// The custom event will be passed a request object which will contain
	// any data sent from the client as well as the actual socket instance,
	// allowing you to respond to the client with custom events through socket.emit
	largemouth.events['someEvent'] = function(req, socket) {
			console.log('hi', req);
		}
	}

	// Only basic rules implemented, no expressions/variables
	largemouth.rules = {
		".read": true,
		".write": false,
		"chats": {
			".read": true,
			".write": true
		}
	}
}

##Release notes

  • 0.3.0 - Basic permissions and rules implemented. Fully implemented the resource.remove() method.
  • 0.2.4 - Load the config file and define custom events.
  • 0.2.0 - Don't send down entire datasets to notify clients of changes, rather send down what changed and allow the client to resolve the data.
  • 0.1.0 - Minimal portion of the Firebase API supported.

Bitdeli Badge