Module PocketMeshPeer

module Peer: { ... };

Represents one peer in the list of peers (friends), see Peers.

module Peers: { ... };

Represents a list of peers (friends).

module Crdt: Automerge.CommonAPI with type Crdt.actorId = Peer.Id.t;

Replicated data type that represents application-specific content for a group of peers.

module InitConfig: { ... };

Initial configuration of the library that is passed into the init function.

module PeersConnections: { ... };

Manages P2P connections and their state.

module PeersStatuses: { ... };

Stores online statuses of all friends.

module PeerInGroup: { ... };

Record describing membership of a peer in a group. Currently only stores his permissions.

module PeersGroup: { ... };

Module that represents one group of peers with its replicated content.

module IdGenerator: { ... };

Generates various globally unique identifiers.

module PeersGroups: { ... };

Represents a list of all local groups.

module ThisPeer: { ... };

All info about the local peer.

module SignalChannel: { ... };

All info about the signal channel.

module Msg: { ... };

Library message type and constructors for the public messages. Messages are meant to be passed to the update function.

module DbState: { ... };

Represents the part of library state that is persisted in the local database.

module RuntimeState: { ... };

Represents runtime state of the library that is lost after closing the app.

module State: { ... };

Represents the whole state of the library.

let init: InitConfig.t => (State.t, BlackTea.Cmd.t(Msg.t));

Initializes state of the library.

let update: State.t => Msg.t => (State.t, BlackTea.Cmd.t(Msg.t));

Updates state of the library.

let subscriptions: State.t => BlackTea.Sub.t(Msg.t);

Subscriptions of the library.