Published January 25, 2026 | Version v2
Dataset Open

Cross-Platform Integration and Extension of Replicated Data Libraries in Distributed Systems

  • 1. ROR icon Virginia Tech

Description

BabelRDL: Platform-Agnostic Replicated Data Library (RDL)

Overview

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.

Supported RDLs

Currently implemented RDLs:

  • Counter
  • Set
  • Map

Each RDL is implemented in Go, Java, JavaScript, and Rust.

Requirements

  • Go >= 1.19
  • Java >= 11
  • Node.js >= 16
  • Rust >= 1.70
  • Make (for Go, Java, JS builds)

Running BabelRDL

1. Setup

  1. Open a terminal for each language: Go, Java, JavaScript, and Rust inside the directory of the desired RDL.
  2. Build each replica:
    • make all (Go, Java, JS)
    • cargo build --release (Rust)

2. Unit Testing

To verify correctness:

make test       # Go, Java, JS
cargo test      # Rust
 

3. Running Replicas

Run each replica in its terminal:

./r{replicaID}.sh
 

where {replicaID} corresponds to the replica number.

4. Cleaning Build Artifacts

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