All Projects → fthomas → Crjdt

fthomas / Crjdt

Licence: apache-2.0
A conflict-free replicated JSON datatype (CRDT) in Scala

Programming Languages

scala
5932 projects

Labels

Projects that are alternatives of or similar to Crjdt

Echarts3 Mapfile
Echarts3.0地图数据(含全国和省js以及全国、省、区县json)
Stars: ✭ 258 (-4.8%)
Mutual labels:  json
Survey Library
JavaScript Survey and Form Library
Stars: ✭ 3,060 (+1029.15%)
Mutual labels:  json
Fluidframework
Library for building distributed, real-time collaborative web applications
Stars: ✭ 3,592 (+1225.46%)
Mutual labels:  crdt
Tableexport
tableExport(table导出文件,支持json、csv、txt、xml、word、excel、image、pdf)
Stars: ✭ 261 (-3.69%)
Mutual labels:  json
Json Schema To Ts
Infer TS types from JSON schemas 📝
Stars: ✭ 261 (-3.69%)
Mutual labels:  json
Bs Json
Compositional JSON encode/decode library for BuckleScript
Stars: ✭ 267 (-1.48%)
Mutual labels:  json
Php Curl Class
PHP Curl Class makes it easy to send HTTP requests and integrate with web APIs
Stars: ✭ 2,903 (+971.22%)
Mutual labels:  json
Edizon cheatsconfigsandscripts
The official EdiZon Editor Config and Editor Script repository.
Stars: ✭ 271 (+0%)
Mutual labels:  json
Jsonmodels
jsonmodels is library to make it easier for you to deal with structures that are converted to, or read from JSON.
Stars: ✭ 262 (-3.32%)
Mutual labels:  json
Webpack Assets Manifest
This Webpack plugin will generate a JSON file that matches the original filename with the hashed version.
Stars: ✭ 269 (-0.74%)
Mutual labels:  json
Restful Doom
HTTP+JSON API hosted inside the 1993 DOOM engine!
Stars: ✭ 263 (-2.95%)
Mutual labels:  json
Sqawk
Like Awk but with SQL and table joins
Stars: ✭ 263 (-2.95%)
Mutual labels:  json
Dotnet Fake Json Server
Fake JSON Server is a Fake REST API that can be used as a Back End for prototyping or as a template for a CRUD Back End.
Stars: ✭ 265 (-2.21%)
Mutual labels:  json
Streaming Json Encoder
PHP library for iteratively encoding large JSON documents piece by piece
Stars: ✭ 260 (-4.06%)
Mutual labels:  json
Gorequest
GoRequest -- Simplified HTTP client ( inspired by nodejs SuperAgent )
Stars: ✭ 3,063 (+1030.26%)
Mutual labels:  json
Json
An efficient JSON decoder
Stars: ✭ 260 (-4.06%)
Mutual labels:  json
Spine
A Swift library for working with JSON:API APIs. It supports mapping to custom model classes, fetching, advanced querying, linking and persisting.
Stars: ✭ 267 (-1.48%)
Mutual labels:  json
Surrealist
to_json but I wrote it myself
Stars: ✭ 271 (+0%)
Mutual labels:  json
Mojojson
A simple and fast JSON parser.
Stars: ✭ 271 (+0%)
Mutual labels:  json
Ipfs Log
Append-only log CRDT on IPFS
Stars: ✭ 269 (-0.74%)
Mutual labels:  crdt

crjdt: a conflict-free replicated JSON datatype in Scala

Build Status codecov Join the chat at https://gitter.im/fthomas/crjdt Scaladex Scaladoc

This is an implementation of the data structures and algorithms described in the paper A Conflict-Free Replicated JSON Datatype (PDF) by Martin Kleppmann and Alastair R. Beresford.

The goal of this project is to provide a high-level API to the CRDT described in the paper that integrates well with other JSON libraries for Scala.

Getting Started

crjdt is currently available for Scala and Scala.js, version 2.11 and 2.12.

To get started with sbt, add the following to your build.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 the Scaladex page.

Contributors and participation

The crjdt project supports the Typelevel code of conduct and wants all of its channels (Gitter, GitHub, etc.) to be welcoming environments for everyone.

Other implementations

Here are other implementations of the JSON CRDT described in the paper by Kleppmann and Beresford.

If you know an implementation that is not listed here, please submit a PR!

Development

  • Format your code with Scalafmt.
  • Run a specific test with e.g. sbt "test:testOnly eu.timepit.crjdt.core.examples.Figure1" or all tests with sbt test.
  • Documentation for Vertical Move is in the file doc.md.

License

Copyright 2016 Frank S. Thomas

crjdt is licensed under the Apache License, Version 2.0 (the "License"); you may not use this software except in compliance with the License.

Unless required by applicable law or agreed to in writing, software distributed 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 and limitations under the License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].