All Projects β†’ gritzko β†’ Ron Cxx

gritzko / Ron Cxx

Licence: mit
RON2.1 C++ implementation

Projects that are alternatives of or similar to Ron Cxx

node-v
πŸ”’ Secure ❄️ Synchronized ⚑️ Realtime ☁️ Cloud 🌈 Native JavaScript Variables & Events
Stars: ✭ 27 (-18.18%)
Mutual labels:  sync, synchronization
Kinto.js
An Offline-First JavaScript Client for Kinto.
Stars: ✭ 268 (+712.12%)
Mutual labels:  sync, synchronization
S4
πŸ”„ Fast and cheap synchronisation of files using Amazon S3
Stars: ✭ 69 (+109.09%)
Mutual labels:  sync, synchronization
code-sync
Collaborative cloud platform for students, teachers, and professionals.
Stars: ✭ 28 (-15.15%)
Mutual labels:  sync, synchronization
Osync
A robust two way (bidirectional) file sync script based on rsync with fault tolerance, POSIX ACL support, time control and near realtime sync
Stars: ✭ 677 (+1951.52%)
Mutual labels:  synchronization, replication
locize-cli
locize cli to import / export locales, add / edit / remove sync segments
Stars: ✭ 44 (+33.33%)
Mutual labels:  sync, synchronization
mute-structs
MUTE-structs is a Typescript library that provides an implementation of the LogootSplit CRDT algorithm.
Stars: ✭ 14 (-57.58%)
Mutual labels:  replication, crdt
ldb
Replication of CRDTs
Stars: ✭ 37 (+12.12%)
Mutual labels:  replication, crdt
Ffsubsync
Automagically synchronize subtitles with video.
Stars: ✭ 5,167 (+15557.58%)
Mutual labels:  sync, synchronization
Symmetric Ds
SymmetricDS is a database and file synchronization solution that is platform-independent, web-enabled, and database agnostic. SymmetricDS was built to make data replication across two to tens of thousands of databases and file systems fast, easy and resilient. We specialize in near real time, bi-directional data replication across large node networks over the WAN or LAN.
Stars: ✭ 450 (+1263.64%)
Mutual labels:  synchronization, replication
synchly
Automate database backups with customizable recurring schedules.
Stars: ✭ 27 (-18.18%)
Mutual labels:  sync, synchronization
Ipfs Sync
Live IPFS directory synchronization.
Stars: ✭ 16 (-51.52%)
Mutual labels:  sync, synchronization
DeviceSync-for-OS-X
Calendar synchronization between iOS and OS X using USB
Stars: ✭ 12 (-63.64%)
Mutual labels:  sync, synchronization
sql-sync
Offline replication between SQLite (clients) and MySQL (master).
Stars: ✭ 52 (+57.58%)
Mutual labels:  sync, replication
TabSync
A lightweight synchronizer between Android's Tabs and Lists. Available on the View system and Jetpack Compose.
Stars: ✭ 98 (+196.97%)
Mutual labels:  sync, synchronization
state
A Redux-based state container for local-first software, offering seamless synchronization using Automerge CRDTs. (Formerly known as 🐟 Cevitxe).
Stars: ✭ 126 (+281.82%)
Mutual labels:  synchronization, crdt
Immudb
immudb - world’s fastest immutable database, built on a zero trust model
Stars: ✭ 3,743 (+11242.42%)
Mutual labels:  merkle-tree, replication
Merkletreejs
🌱 Construct Merkle Trees and verify proofs in JavaScript.
Stars: ✭ 238 (+621.21%)
Mutual labels:  merkle-tree, protocol
Dotmim.sync
A brand new database synchronization framework, multi platform, multi databases, developed on top of .Net Standard 2.0. https://dotmimsync.readthedocs.io/
Stars: ✭ 406 (+1130.3%)
Mutual labels:  sync, synchronization
Monstache
a go daemon that syncs MongoDB to Elasticsearch in realtime
Stars: ✭ 736 (+2130.3%)
Mutual labels:  sync, synchronization

RON 2.1 reference implementation in C++

Replicated Object Notation (RON) is a format for distributed live data. See http://replicated.cc for the protocol spec.

This is a Ragel/C++ implementation of:

  • Replicated Object Notation (parsers/builders),
  • Replicated Data Types (RON based CRDTs),
  • libswarmdb.so, an embedded syncable database (RocksDB-based),
  • swarmdb, a standalone RON key-value db (a CLI to the lib).

Still in the works / planned / envisioned:

  • libswarmdb bindings for higher-level languages
    • [ ] Java
    • [ ] Rust
    • [ ] node.js
    • [ ] Python
    • [ ] Go
    • [ ] ?Haskell
  • [ ] WebAssembly (in-memory) lib,
  • [ ] other backends.

Building

  • ensure you have
    • a C++ compiler (a recent clang is preferred),
    • make,
    • CMake (3.9.4 and up),
    • git
  • mkdir build && cd build
  • cmake ..
  • make

(ninja and xcode builds are supported too, e.g. cmake -G Ninja .. && ninja)

Static dependencies are fetched from the net and built by cmake:

  • rocksdb,
  • gflags,
  • botan-2,
  • snappy,
  • myers-diff,
  • cpp-btree.

Dymanic dependencies are taken from the system:

  • zlib,
  • libbz2.

New 2.1 features

  • RON-open two-UUID notation
  • strict references (every object is a causal tree)
  • merge/gc separation (thanks @archagon)
  • multiple encodings (text, binary, JSON, CBOR)
  • chain-based compression

Contents

  • bin/ - utility scripts
  • ragel/ - Ragel grammars, parsers
  • ron/ - RON basic primitives, encodings
  • rdt/ - replicated data types, merge, gc
  • db/ - RocksDB based implementation
  • deps/ - libs, dependencies
  • ...

Contributing

Code conventions as per Google Style Guide. Preferably, use bin/commit.sh for commits.

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].