Skip to content

A Rust Implementation of the Pure Operation-Based CRDT Framework, made for Building Collaborative Applications

License

Notifications You must be signed in to change notification settings

CEA-LIST/Moirai

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

225 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Moirai

GitHub stars License Rust Version Build Status

A Rust Implementation of the Pure Operation-Based CRDT Framework, made for Building Collaborative Applications


⚠️ Work in Progress — In Development ⚠️

This project is under active development. The API and features are subject to change as we refine the framework.

Overview

Moirai is a Rust-based implementation of the pure operation-based Conflict-free Replicated Data Types (CRDT) framework proposed by Baquero, Almeida, and Shoker (see their paper). Moirai provides a collection of ready-to-use CRDT implementations while remaining open to extension. You can leverage it to create new CRDTs with custom conflict-resolution policies. Rust's extensive compilation target support, including WebAssembly, makes Moirai an ideal choice for building collaborative web applications.

Moirai serves as a research platform for developing novel CRDTs tailored for Collaborative Model-Based Systems Engineering (MBSE) and for advancing techniques to enhance the scalability of the Pure Op framework. It features CRDT nesting and composition for building complex replicated data types, an extended query interface, a fuzzer tool for verification and performance testing, and exclusive CRDT implementations including a Pure Op-based Nested Multigraph.

Project Organization

  • src/: Implementation of the Pure Op framework
    • crdt/: A collection of CRDT implementations built with Moirai
    • fuzz/: A fuzzer tool to verify the correctness and performance of implementations
    • macros/: Specialized Rust macros for specific CRDTs
    • protocol/: Implementation of the Pure Op framework's replication protocol
    • utils/: Programming helper modules
  • documentation/: An (unordered) collection of development notes about the framework
  • tests/: Integration tests
  • bench-results/: Contains execution reports from the fuzzer tool

Publications

Moirai has been used in the following research:

License

This project is licensed under the Apache License 2.0. See the LICENSE file for details.


Acknowledgments

Developed at CEA LIST, the French Alternative Energies and Atomic Energy Commission.

Authors:


⬆ Back to Top

Made with ❤️ by the CEA LIST team

About

A Rust Implementation of the Pure Operation-Based CRDT Framework, made for Building Collaborative Applications

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •