Skip to content

CEA-LIST/JSON-CRDT

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JSON

This Rust scaffold project has been automatically generated by Arachne, a code generator from Ecore metamodels to a composition of replicated data types.

JSON is a simplified metamodel of a metalanguage, close to Ecore. It features concepts such as class, attribute, datatype, package, and reference.

JSON Ecore metamodel

Generated Artifacts

Arachne generated the classifier.rs, references.rs, package.rs, and lib.rs files.

  • classifier.rs: contains the replicated object hierarchy, i.e., the CRDTs reproducing the (concrete and abstract) classes, interfaces, enums, and owned features (attributes and containment references).
  • references.rs: contains the Typed Graph CRDT implementation. Manages the non-containment references between replicated objects.
  • package.rs: the root replicated object that contains both the object hierarchy and the typed graph. This is the object with which end-users interact.

Organization

.
├── bench-results/json # Fuzzer execution results
├── src/
│   ├── utils/ # Fuzzer implementation, helper functions...
│   ├── classifiers.rs # Automatically generated
│   ├── lib.rs # Automatically generated
│   ├── package.rs # Automatically generated
│   └── references.rs # Automatically generated
├── tests/
│   ├── fuzzer.rs # Fuzzer test
│   ├── regression.rs # Regression tests used during Arachne development
│   └── scenarios.rs # Test scenarios illustrating how conflicts are solved
├── json.ecore # Ecore metamodel
└── json.png # Ecore metamodel diagram

Running the project

Rust must be installed on your machine: https://rust-lang.org/tools/install. You must have this project, PureOpLib, and Arachne in the same root folder. You can change the path of these dependencies in Cargo.toml. Replace XXXX-1 by the name of PureOpLib.

Running all the tests:

RUST_LOG=debug cargo test

Running the fuzzer:

RUST_LOG=debug cargo test --release -- --ignored --no-capture fuzz

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages