Skip to content

An example implementations of various CRDTs

License

Notifications You must be signed in to change notification settings

zeta1999/crdt-examples

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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
      • Positive/Negative Counter
      • Grow-only Set
      • Add Wins Observed Remove Set
      • Multi Value Register
    • Grow-only Counter
    • Positive/Negative Counter
    • Bounded Counter
    • Grow-only Set
    • 2 Phase Set
    • Add Wins Observed Removed Set
    • Last Write Wins Register
  2. Commutative (operation-based)

    • Pure-operation based:
      • protocol: Tagged Reliable Causal Broadcast
      • Counter
      • Observed Remove Set
    • protocol: Reliable Causal Broadcast
    • Counter
    • Last Write Wins Register
    • Multi Value Register
    • Observed Remove Set (add wins semantics)
    • Linear Sequence (L-Seq)
    • Replicated Growable Array (RGA)
    • Replicated Growable Array (blockwise variant)
    • JSON-like document

About

An example implementations of various CRDTs

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • F# 100.0%