Awesome
orbit-core
Communication protocol on IPFS
Orbit is a serverless, distributed, p2p communication library and protocol that enables feed-based information sharing, such as real-time chat, in the IPFS peer-to-peer network.
This repository is the core library of Orbit. This library is intended to be used in your Node.js or Browser applications.
Used in the various Orbit projects:
- orbit-web - Orbit browser app
- orbit-electron - Orbit desktop app
- orbit-textui - Orbit terminal client
Table of Contents
Install
This module uses npm and node.
npm install orbit_
Usage
See examples/browser/index.html for a more detailed example.
'use strict'
const Orbit = require('orbit_')
const ipfs = new Ipfs()
ipfs.on('ready', () => {
const orbit = new Orbit(ipfs)
const username = 'Example Bot'
const channel = 'HelloWorld'
orbit.events.on('connected', () => {
console.log(`-!- Orbit connected`)
orbit.join(channel)
})
orbit.events.on('joined', channelName => {
orbit.send(channelName, '/me is now caching this channel')
console.log(`-!- Joined #${channelName}`)
})
// Listen for new messages
orbit.events.on('entry', (entry, channelName) => {
const post = entry.payload.value
console.log(`[${post.meta.ts}] <${post.meta.from.name}> ${post.content}`)
})
// Connect to Orbit network
orbit.connect(username).catch(e => console.error(e))
})
API
See API documentation for full details.
Development
Install Dependencies
git clone https://github.com/orbitdb/orbit-core.git
cd orbit-core/
npm install
Run example development environment
npm run dev
Run Tests
npm test
Build Library and Distributables
npm run build
Distributable (ES5 minified for browsers) will be located in dist/
.
Contribute
We 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 us on Gitter, or in the issues section.
We also have regular community calls, which we announce in the issues in the @orbitdb welcome repository. Join us!
If you want to code but don't know where to start, check out the issues labelled "help wanted".
For specific guidelines for contributing to this repository, check out the Contributing guide. For more on contributing to OrbitDB in general, take a look at the @OrbitDB welcome repository. Please note that all interactions in @OrbitDB fall under our Code of Conduct.
License
MIT © 2016-2019 Protocol Labs Inc., Haja Networks Oy