0.1.22 • Published 2 years ago

iris-lib v0.1.22

Weekly downloads
16
License
MIT
Repository
github
Last release
2 years ago

Iris-lib

Decentralize everything.

Iris is a fully decentralized p2p database that you can use to build all kinds of decentralized applications.

  • "Accounts" are just key pairs that can be created at will. No signup required.
  • Stores everything offline-first, and syncs with other users over a publish-subscribe network.
  • Callback system for real-time updates.
  • Supports public and private (encrypted) data.
  • Make aggregate queries from your social network or other group. For example:
    • Fetch the latest posts from your extended social network.
    • Fetch the latest posts from the users on a list maintained by a moderator of your choice.
    • Fetch 3d objects in a virtual room from your friends.
  • Super simple API

Used by iris-messenger (source), a decentralized social networking application.

Installation

npm install iris-lib

or

yarn add iris-lib

Import:

import iris from 'iris-lib';

or include the script in your html:

<script src="https://raw.githubusercontent.com/irislib/iris-messenger/master/iris-lib/dist/iris.umd.production.min.js"></script>

Usage

API documentation

Read/write public profiles:

// Subscribe to your profile name
iris.public().get('profile').get('name').on((name) => {
  console.log('My name is', name);
});
// Set your profile name
iris.public().get('profile').get('name').put('John Doe');

// Subscribe to someone else's profile name
const pub = 'hyECQHwSo7fgr2MVfPyakvayPeixxsaAWVtZ-vbaiSc.TXIp8MnCtrnW6n2MrYquWPcc-DTmZzMBmc2yaGv9gIU'; // Iris public key
iris.public(pub).get('profile').get('name').on((name) => {
  console.log('Someone else\'s name is', name);
});

Make a public post and get posts from everyone in your social network:

iris.session.init(); // Generate a new keypair and crawl the Iris social network using a default entry point.
iris.public().get('msgs').get(new Date().toISOString()).put({text: 'Hello world!'});
iris.group('everyone').map('msgs', (msg, from) => {
  console.log('msg from', from.slice(0,6), msg);
});

Private messaging, browser 1:

const user1 = iris.session.getKey();
console.log('User 1 key:', user1);
iris.private(user2.pub).send('Hello, user 2!');
iris.private(user2.pub).getMessages(msg => {
  console.log('User 1 received a message:', msg);
});

Private messaging, browser 2:

const user2 = iris.session.getKey();
console.log('User 2 key:', user2);
iris.private(user1.pub).send('Hello, user 1!');
iris.private(user1.pub).getMessages(msg => {
  console.log('User 2 received a message:', msg);
});
0.1.20

2 years ago

0.1.21

2 years ago

0.1.22

2 years ago

0.1.18

2 years ago

0.1.19

2 years ago

0.1.10

2 years ago

0.1.11

2 years ago

0.1.12

2 years ago

0.1.13

2 years ago

0.1.14

2 years ago

0.1.0

3 years ago

0.1.2

3 years ago

0.1.1

3 years ago

0.1.8

2 years ago

0.1.7

2 years ago

0.1.9

2 years ago

0.1.4

3 years ago

0.1.3

3 years ago

0.1.5

3 years ago

0.1.16

2 years ago

0.1.17

2 years ago

0.0.159

4 years ago

0.0.158

4 years ago

0.0.157

4 years ago

0.0.156

4 years ago

0.0.155

4 years ago

0.0.154

4 years ago

0.0.153

4 years ago

0.0.152

5 years ago

0.0.151

5 years ago

0.0.150

5 years ago

0.0.149

5 years ago

0.0.148

5 years ago

0.0.147

5 years ago

0.0.146

5 years ago

0.0.145

5 years ago

0.0.144

5 years ago

0.0.143

5 years ago

0.0.142

5 years ago

0.0.141

5 years ago

0.0.140

5 years ago

0.0.139

5 years ago

0.0.138

5 years ago

0.0.137

5 years ago

0.0.136

5 years ago

0.0.135

5 years ago

0.0.134

5 years ago

0.0.133

5 years ago

0.0.132

6 years ago

0.0.131

6 years ago

0.0.129

6 years ago

0.0.128

6 years ago

0.0.127

6 years ago

0.0.126

6 years ago

0.0.125

6 years ago

0.0.124

6 years ago

0.0.123

6 years ago

0.0.122

6 years ago

0.0.121

6 years ago

0.0.120

6 years ago

0.0.119

6 years ago

0.0.118

6 years ago

0.0.117

6 years ago

0.0.116

6 years ago

0.0.115

6 years ago

0.0.114

6 years ago

0.0.113

6 years ago

0.0.112

6 years ago

0.0.111

6 years ago

0.0.110

6 years ago

0.0.109

6 years ago

0.0.108

6 years ago

0.0.107

6 years ago

0.0.106

6 years ago

0.0.105

6 years ago

0.0.104

6 years ago

0.0.103

6 years ago

0.0.102

6 years ago

0.0.101

6 years ago

0.0.100

6 years ago

0.0.99

6 years ago

0.0.98

6 years ago

0.0.97

6 years ago

0.0.96

6 years ago

0.0.95

6 years ago

0.0.94

6 years ago

0.0.93

6 years ago

0.0.92

6 years ago

0.0.91

6 years ago