Iris-lib provides the Iris API for reading, writing, indexing and searching Messages and Identities.
The task of data storage and networking is outsourced to GUN, which manages the synchronization of data between different storages: RAM, localstorage, GUN websocket server, WebRTC peers, LAN multicast peers, IPFS (no adapter yet), S3 or others.
GUN enables subscription to data changes, so message feeds and identity profiles just update real-time without having to hit f5 or writing complex update logic.
iris = require('iris-lib');
Gun = require('gun'); // github.com/amark/gun is needed
require('gun/sea');
gun = new Gun(['https://gun-us.herokuapp.com/gun', 'https://gun-eu.herokuapp.com/gun']);
defaultIndexID = 'b8ByaYNBDCMLNdZqMdas5oUFLCxBf2VH3-NjUulDaTo.DVzINErRVs6m5tyjAux6fcNfndadcgZVN5hLSwYTCLc';
user = gun.user(defaultIndexID);
index = new iris.Index(user.get('iris'));
profile = index.get('sirius@iki.fi');
profile.gun.get('attrs').then(console.log);
profile.verified('name').then(console.log);
Install via yarn
yarn add iris-lib (--dev)
or npm
npm install iris-lib (--save-dev)
See example
folder or the runkit example.
If you don't use a package manager, you can access iris-lib
via unpkg (CDN), download the source, or point your package manager to the url.
iris-lib
is compiled as a collection of CommonJS modules & [ES2015 modules](http://www.2ality.com/2014/0
-9/es6-modules-final.html) for bundlers that support the jsnext:main
or module
field in package.json (Rollup, Webpack 2)
The iris-lib
package includes precompiled production and development UMD builds in the dist
folder. They can be used directly without a bundler and are thus compatible with many popular JavaScript module loaders and environments. You can drop a UMD build as a <script>
tag on your page. The UMD builds make iris-lib
available as a window.irisLib
global variable.
The code is available under the MIT license.
Please do integrate iris-lib with your existing application or with a test application and create Github issues for the bugs and other problems you may encounter. Your help is much appreciated!
TODO list is also available on Trello.
Majestic is a handy tool for viewing jest test results and coverage.
This module was created using generator-module-boilerplate.