Cross-Platform Integration and Extension of Replicated Data Libraries in Distributed Systems
Description
This repository contains the reference implementation of BabelRDL, a research framework for a cross-platform, language-agnostic replicated data library. BabelRDL allows replicas written in Go, Java, JavaScript, and Rust to interoperate seamlessly while supporting modular extensions via a plug-in architecture.
This artifact accompanies our research paper: Cross-Platform Integration and Extension of Replicated Data Libraries in Distributed Systems, submitted to the Journal of Parallel and Distributed Computing. The implementation is designed to be reproducible and has been tested on Linux and Windows environments.
Currently implemented RDLs:
- Counter
- Set
- Map
Each RDL is implemented in Go, Java, JavaScript, and Rust.
- Go >= 1.19
- Java >= 11
- Node.js >= 16
- Rust >= 1.70
- Make (for Go, Java, JS builds)
- Open a terminal for each language: Go, Java, JavaScript, and Rust inside the directory of the desired RDL.
- Build each replica:
make all(Go, Java, JS)cargo build --release(Rust)
To verify correctness:
make test # Go, Java, JS cargo test # Rust
Run each replica in its terminal:
./r{replicaID}.sh
where {replicaID} corresponds to the replica number.
make clean # Go, Java, JS
cargo clean # Rust
Files
BabelRDL.zip
Files
(151.3 MB)
| Name | Size | Download all |
|---|---|---|
|
md5:46083a5df2f04d10864dc430ef719a14
|
151.3 MB | Preview Download |
|
md5:728d279f0fcaad6f03e03b3ba8c146ce
|
1.6 kB | Preview Download |