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
This module uses npm and node.
npm install orbit_
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))
})
See API documentation for full details.
git clone https://github.com/orbitdb/orbit-core.git
cd orbit-core/
npm install
npm run dev
npm test
npm run build
Distributable (ES5 minified for browsers) will be located in dist/
.
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.
MIT © 2016-2019 Protocol Labs Inc., Haja Networks Oy