Skip to main content
Deno 2 is finally here 🎉️
Learn more
Module

x/earthstar/src/peer/peer.ts>Peer

Earthstar is a tool for private, undiscoverable, offline-first networks.
Go to Latest
class Peer
implements IPeer
import { Peer } from "https://deno.land/x/earthstar@v10.0.0-beta.5/src/peer/peer.ts";

Holds many shares' replicas and manages their synchronisation with other peers. Recommended as the point of contact between your application and Earthstar shares.

Constructors

new
Peer()

Properties

private
replicaEventBus: BlockingBus<Map<ShareAddress, Replica>>
private
syncerManager: SyncerManager
replicaMap: Map<ShareAddress, Replica>

A map of the replicas stored in this peer.

Methods

addReplica(replica: Replica): Promise<void>
addSyncPartner<I, F>(
partner: ISyncPartner<I>,
description: string,
formats?: FormatsArg<F>,
)

Begin syncing using an instance implementing ISyncPartner. Use this if you don't want to sync with a local peer or a replica server.

getReplica(ws: ShareAddress): Replica | undefined

Get all syncers created by this peer. This includes running and cancelled syncers.

hasShare(share: ShareAddress): boolean
onReplicasChange(callback: (map: Map<ShareAddress, Replica>) => void | Promise<void>)

Fires a given callback whenever the Peer's store of replicas changes.

onSyncersChange(callback: (map: Map<string, { description: string; syncer: Syncer<unknown, unknown>; }>) => void | Promise<void>): () => void

Fires a given callback whenever a new syncer is added to the peer.

removeReplica(replica: Replica): Promise<void>
removeReplicaByShare(share: ShareAddress): Promise<void>
size(): number

The number of replicas held by this peer

sync<F>(
target: IPeer | string,
continuous?,
formats?: FormatsArg<F>,
): Syncer<undefined, F>

Begin synchronising with a remote or local peer.