Skip to content

mustafa-zidan/crdt-text-from-scratch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CRDT Text Editor: From Scratch to Reality

A hands-on project to build a sequence CRDT for collaborative text editing from scratch and benchmark it. This is an attempt to understand the principles of CRDTs and their practical applications in real-time collaborative systems.

Purpose

This project is a personal learning journey into the world of CRDTs (Conflict-free Replicated Data Types) in the context of real-time collaborative applications.

Documentation

All milestone notes and technical write-ups are in the docs folder.

  • CRDT Intro: Introduction to CRDTs and their types, common properties, and use cases.
  • Conflict Modeling: Exploring different types of conflicts in CRDTs and how to handle them.
  • CRDT Sequence: Detailed exploration of sequence CRDTs, their properties, and design considerations.
  • CRDT Design: Design decisions and considerations for building a sequence CRDT.
  • CRDT Implementation: Implementation details and code structure for the sequence CRDT.
  • Editor Integration: Integrating the CRDT with a text editor for real-time collaboration.
  • Library Comparison: Comparing the implemented CRDT with existing libraries in terms of performance and correctness.
  • Benchmarks: Performance benchmarks of the implemented CRDT against existing libraries.
  • Lessons Learned: Reflections on the learning journey, challenges faced, and key takeaways.

Goals

  • Build a working sequence CRDT from first principles
  • Compare its correctness and performance with production libraries
  • Document key decisions, failures, and wins

About

Building a distributed text editor the hard way: No libraries, no mercy, just pure CRDT chaos.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published