Files
modules/state-crdts/hyper-p2p-crdt-or-map
2026-05-20 23:36:32 -04:00
..
2026-05-20 23:36:32 -04:00
2026-05-20 23:36:32 -04:00
2026-05-20 22:56:32 -04:00
2026-05-20 21:19:52 -04:00
2026-05-20 22:56:32 -04:00
2026-05-20 21:57:50 -04:00
2026-05-20 21:57:50 -04:00
2026-05-20 23:36:32 -04:00

hyper-p2p-crdt-or-map

Observed-remove map CRDT: LWW per key with explicit remove() tombstones, replicated via gossip.

Category: State CRDTs · Protocol: crdt-or-map/v1

When to use

Shared maps where deletes must converge (tags, settings keys, room metadata).

When not to use

Simple scalar registers without key removal semantics (use LWW register). Grow-only membership (use G-Set / 2P-Set).

Quick start

const { HyperP2PCrdtOrMap } = require('hyper-p2p-crdt-or-map')
const map = new HyperP2PCrdtOrMap({ topic: process.argv[2] })
await map.ready()
map.set('room', { name: 'lobby' })
map.remove('room')
await map.close()

Docs

docs/api.md · docs/architecture.md

Test

npm install && npm test · bare examples/basic.js [topic]