An example implementations of various CRDTs
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

This repository contains an example implementation of various CRDTs. It serves mainly academic purposes (the implementations are meant to be simple and easy to understand, not optimized). If you want help or want to actually use them on production please let me know ;)

List of CRDTs (implemented and to be implemented):

  1. Convergent (state-based):

    • Delta-based
      • Grow-only Counter
      • Increment/Decrement Counter
      • Grow-only Set
      • Add Wins Observed Remove Set
      • Multi Value Register
      • Bounded Counter
    • Grow-only Counter
    • Increment/Decrement Counter
    • Grow-only Set
    • 2 Phase Set
    • Add Wins Observed Removed Set
    • Last Write Wins Register
  2. Commutative (operation-based)

    • Counter
    • Observed Remove Set
    • Linear Sequence (L-Seq)
    • Replicated Growable Array (block-wise variant)