Giter Club home page Giter Club logo

bipio's Introduction

bipio

Welcome to the Bipio API Server.

BipIO is Billion Instructions Per I/O - For People and Robots.

Bipio is a graph pipelining API talking RESTful JSON, where each node in your graph is responsible for performing a discrete unit of work, such as integrating "cloud" API's or other web based RPC's. If you're familiar with Yahoo Pipes, IFTTT or Zapier, the concept is similar. The server has a small footprint which lets you create and automate an internet of things that matter to you, you can install it alongside your existing open source app or prototype, or your Rasberry Pi for example.

The graph structures (bips) allow you to transform content between adjacent nodes. Bips can even create other bips. They can be reconfigured dynamically without requiring changes to the connecting client, ideal for rapid prototyping, A/B testing, message normalization, digital asset monetization, sharing secret or (n)-use messages, or really any kind of web based interprotocol communication. If you have a demanding product manager, they'll probably love that you can flip a switch and deliver a feature-creep integration in seconds. It can handle your email (like this Chrome Extension does), or automate tasks, be a personal message hub etc.

There are three flavors of Bip - public facing HTTP or SMTP endpoints, and periodic Triggers. Some of their characteristics include

  • dynamic or automatically derived naming
  • pausing or self-destructing after a certain time or impressions volume
  • binding to connecting clients with soft ACLs over the course of their 'life'
  • able to be reconfigured dynamically without changing a client implementation
  • infinitely extensible, from any channel to any other channel.
  • can serve (render) protected channel content while inheriting all of the above characteristics

Bipio is dynamic, flexible, fast, modular, opinionless and gplv3 open source.

concept

Bips are configured by defining a graph (hub) across nodes (channels). Channels perform a discrete unit of work and emit a predictable result, where one channels export becomes the next adjacent channels transformed import. Parallel delivery is handled by an AMQP transport to the blazingly fast RabbitMQ broker, where each atomic message can be independently processed by any subscribing node in the cluster.

Channels are largely decoupled from the graph resolution platform in self contained collections called Pods. 'Self Contained' meaning they are free from other system concerns and can operate independently. Channels can store, track, serve or transform content and messages as part of a pipeline. Feel free to roll your own favorite integration by getting started with Pods and Channels, then jump in and Install Your First Pod.

The API is expressive and straight forward, there are only 2 1st-class resources - bips and channels. For example, to create a basic email forwarder sitting infront of your actual inbox :

Create a Channel
POST /rest/channel
{
 action : 'email.smtp_forward',
 config : {
   'rcpt_to' : '[email protected]'
 }
}

RESPONSE
{
 id : '{email channel id}'
}
And then with that email channel, place it onto an 'smtp' bip.
POST /rest/bip
{
 type : 'smtp',
 hub : {
   'source' : {
      edges : [ '{email channel id}' ]
   }
 }
}

RESPONSE
{
 name : 'lcasKQosWire22'
 _repr : '[email protected]'
}

And thats it.

The BipIO server software is the basic framework for processing bips and their delivery graphs. For an authoritative list of officially supported services, please see the bip-pod-* repos via https://github.com/bipio-server and please help make the community a better place.

The server is currently distributed headless. Sign in to bipio to mount your local install from your browser under My Account > Mounts > Create Mount.

Hosted/Commercial OEM solutions can be found at https://bip.io. Read the License section at the end of this readme for important info.

Requirements

SMTP Bips are available out of the box with a Haraka plugin. Configs under bipio-contrib/haraka.

Installation

npm install bipio
make install
node ./src/server.js

Be sure to have a MongoDB server and Rabbit broker ready and available before install. Otherwise, follow the prompts during the make install script to get a basically sane server running that you can play with.

A sample upstart script is supplied in config/upstart_bip.conf -- suggest using upstart with monit

Documentation

General API spec and tutorials can be found at https://bip.io. For server setup and configuration guides, keep an eye on the Wiki, it will be continuously updated.

License

BipIO is free for non-commercial use.

GPLv3

Our open source license is the appropriate option if you are creating an open source application under a license compatible with the GNU GPL license v3.

Bipio may not be used for Commercial purposes by an entity who has not secured a Bipio Commercial OEM License. To secure a Commercial OEM License for Bipio, please reach us

Cloud Spark Copyright (c) 2010-2014 CloudSpark pty ltd

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.