This branch contains the Raft lab code and test harness, with support for:
- C++ Raft implementation (
src/protocol/raft) - Rust Raft implementation (
src/protocol/rust_raft) via FFI bridge
It is configured for fast lab iteration with a slim build path.
src/protocol/raft/- C++ Raft implementationsrc/protocol/rust_raft/- Rust Raft server logic and wrapperssrc/protocol/raft/rust_ffi_wrapper.cc- C++ <-> Rust bridgetest/labtest.cc,test/labtestconf.cc- lab test harnessdocs/labs/raft-cpp.md- C++ lab guidedocs/labs/raft-rust.md- Rust lab guide
cmake -S . -B build-cpp -DBUILD_RAFT_LAB_TESTS=ON
cmake --build build-cpp --target labtest -j$(nproc)
./build-cpp/labtest -f config/raft_lab_test.ymlcmake -S . -B build-rust -DBUILD_RAFT_LAB_TESTS=ON -DUSE_RUST_RAFT=ON
cmake --build build-rust --target labtest -j$(nproc)
./build-rust/labtest -f config/raft_lab_test.ymlmake labtest
./build/labtest -f config/raft_lab_test.ymlNote: make labtest builds the default (C++) labtest binary under build/.
C++ mode also supports:
./build-cpp/labtest -f config/kv_lab_test.yml
./build-cpp/labtest -f config/shard_lab_test.ymlenv.txtis required by CMake.- Rust mode requires a working Rust toolchain (
cargo,rustc). - This branch intentionally excludes many non-lab protocols/bench workloads.