/orbit

Distributed, serverless, peer-to-peer chat application on IPFS

Primary LanguageJavaScriptMIT LicenseMIT

Orbit

A distributed, peer-to-peer chat application built on IPFS

NOTE! Currently only the Electron (Desktop) version works. We're working to fix the Browser version (js-ipfs)

Project Status

Status: In active development

NOTE! Orbit is still more or less experimental. Things will change and break over the coming months, but we're pushing towards to stabilize the code base. If you come across problems, it would help greatly to open issues so that we can fix them as quickly as possible.

Check the project's roadmap to see what's happening at the moment and what's planned next.

Project Status CircleCI Status

See also the CHANGELOG for what's new!

If you would like to participate in designing what Orbit is as a product, please join us in Product Design for Orbit issue.

Run

Orbit can be run either in a browser or as a native desktop application. The browser application uses js-ipfs implementation of IPFS. The desktop version uses the go-ipfs implementation of IPFS Electron. Orbit uses orbit-db as its underlaying distributed database.

Please note that Orbit is not secure at the moment!

Live Demo

http://orbit.libp2p.io/

The live demo is an old version of Orbit. It is recommended to follow the instructions below to run the latest version.

Desktop

git clone https://github.com/haadcode/orbit.git
cd orbit
npm install
npm start

Browser

Chrome is recommended to run Orbit in the browser.

git clone https://github.com/haadcode/orbit.git
cd orbit
npm install
npm start

Development

Requirements

  • Node.js v6.x.x
  • npm v3.x.x
  • g++, gcc, make (for building native modules)
  • python 2 (for building, some native modules need it, node-fibers perhaps?)

Get the source code

git clone https://github.com/haadcode/orbit.git
cd orbit/

Install dependencies

npm install

Run Tests

npm test

Browser app development

NOTE! This is currently not working as described. We're working to fix it.

cd client/
npm install
npm run dev
# This won't work. See bug here: __TODO__

This will open webpack dev-server at http://localhost:8000/webpack-dev-server.

Build

cd client/
npm install
npm run build

This will create client/dist directory which contains all the files needed to distribute the Orbit browser application.

Desktop app development

First, start the desktop app in developer mode:

npm run dev:electron

Then, start the UI development environment:

cd client/
npm install
npm run dev

Build

Run this is in project's root directory, not in client/.

npm run build

The builds are in dist/.

API

We're in the process of separating the core orbit code into its own module and it'll make it possible to use the Orbit API to develop other clients and program using orbit.

See API documentation for full details.

Contributing

I would be happy to accept PRs! If you want to work on something, it'd be good to talk beforehand to make sure nobody else is working on it. You can reach me on Twitter @haadcode or on IRC #ipfs on Freenode, or in the comments of the issues section.

A good place to start are the issues labelled "help wanted" or the project's status board.

License

MIT © 2016 haadcode