hyper-p2p-crdt-pn-counter
Positive-negative counter CRDT (per-peer inc/dec, global sum).
Protocol: crdt-pn-counter/v1
When to use
- Distributed counters (likes, queue depth estimates) with decrement support.
- Sharded increments per peer without central coordination.
When not to use
- Strict linearizable integers (use centralized or consensus module).
- Set membership.
Quick start
const { HyperP2PCrdtPnCounter } = require('hyper-p2p-crdt-pn-counter')
const c = new HyperP2PCrdtPnCounter({ topic: 'metrics' })
await c.ready()
c.inc('peer-a')
c.dec('peer-b')
console.log(c.value())
await c.close()
Docs
Test
npm install && npm test