this talk on YouTube by Marc Shapiro for an excellent introduction on what CRDTs are and how they work. References
TodoP2P for example projects using some of these libraries.
replikativ ( Bliki)
replikativ is a library that offers many CRDTs including LWWR, G-Set, OR-Map, and CDVCS (an append-only graph)
Uses WebSockets as wire
CouchDB uses a Merkle DAG like hyperlog and Git
hyperlog ( Bliki)
hyperlog is a CRDT because two append-only Merkle DAGs can inherently be merged in either order. In other words, the internal replication updates among hyperlogs are commutative.
Uses Node.js streams as wire
Scuttlebot ( Bliki)
Scuttlebot is a CRDT because a) writes to concurrent streams do not conflict with each other and b) conflicts within streams are handled using (as far as I know) last-write-wins semantics using the message’s locally-recorded timestamp.
Decentralized, not distributed: PouchDB relies on an external CouchDB server to talk to other peers. Uses HTTP as wire