Nincompoops Producing Methane

    largemouth

    0.3.9 • Public • Published

    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

    Keywords

    none

    Install

    npm i largemouth

    DownloadsWeekly Downloads

    0

    Version

    0.3.9

    License

    MIT

    Last publish

    Collaborators

    • blittle