- Notifications
You must be signed in to change notification settings - Fork18
A conflict-free replicated JSON datatype (CRDT) in Scala
License
fthomas/crjdt
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This is an implementation of the data structures and algorithms describedin the paperA Conflict-Free Replicated JSON Datatype(PDF) byMartin Kleppmann andAlastair R. Beresford.
The goal of this project is to provide a high-level API to the CRDT describedin the paper that integrates well with other JSON libraries for Scala.
crjdt is currently available for Scala andScala.js,version 2.11 and 2.12.
To get started with sbt, add the following to yourbuild.sbt
file:
libraryDependencies++=Seq("eu.timepit"%%"crjdt-core"%"0.0.7","eu.timepit"%%"crjdt-circe"%"0.0.7"// optional)
For Scala.js just replace%%
with%%%
above.
Instructions for Maven and other build tools are available on theScaladex page.
The crjdt project supports theTypelevelcode of conduct and wants all of its channels (Gitter,GitHub, etc.) to be welcoming environments for everyone.
Here are other implementations of the JSON CRDT described in thepaper byKleppmann andBeresford.
If you know an implementation that is not listed here, please submit a PR!
- Format your code withScalafmt.
- Run a specific test with e.g.
sbt "test:testOnly eu.timepit.crjdt.core.examples.Figure1"
or all tests withsbt test
. - Documentation for Vertical Move is in the file
doc.md
.
Copyright 2016 Frank S. Thomas
crjdt is licensed under theApache License, Version 2.0(the "License"); you may not use this software except in compliance withthe License.
Unless required by applicable law or agreed to in writing, softwaredistributed under the License is distributed on an "AS IS" BASIS,WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.See the License for the specific language governing permissions andlimitations under the License.
About
A conflict-free replicated JSON datatype (CRDT) in Scala