+
Skip to content

gritzko/librdx

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Syncing in RDX

The building blocks define the properties of the resulting system, to a large degree. Think LEGO vs Meccano, or IP packets vs Ethernet frames, or logs vs bricks. The Replicated Data eXchange format is made for easy and consistent syncing.

Technically, RDX is CRDT based (Conflict-free Replicated Data Types). RDX defines all the commodity data structures: maps/sets, vectors/lists, registers/counters etc, all to be naturally syncable and mergeable.

Conceptually, RDX cancels the assumption of a "single source of truth" (like in SQL dbs) as well as the assumption of "requesting the transient data" (like in HTTP REST). There is an event's origin, but all the event's data can be saved anywhere. In an RDX network, every node is both a "cache" (in the HTTP sense) and a "branch" (in the git sense).

Historically, RDX is a successor of many past projects, including Swarm.js and RON. There are experimental projects using RDX, e.g. the Chotki database which recently ran out of 32-bit counters in production use.

Pragmatically, RDX replicas sync precisely to the last bit and they do it very fast! You can build anything with RDX.

Structurally, one can see RDX as a superset of JSON. That is a good mental model to start experimenting.

This repo contains a low-level RDX implementation as well as different systems built with RDX as a proof-of-concept.

About

Replicated Data eXchange format C lib

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  
点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载