Store-RS Source-Checkout Quickstart#
Store-RS is an optional Rust-native Mooncake Store component in the root repository. The normal CMake build leaves Store-RS disabled, and the Python Store facade uses the C++ backend by default. Enable Store-RS when building a root wheel that should include the Rust backend and its standalone commands.
Requirements#
A Mooncake root checkout with its submodules initialized.
CMake, a C++ toolchain, and the Rust toolchain used by the Store-RS build.
Python 3.10 or newer for the Python wheel.
A Redis or etcd metadata service for a multi-client runtime.
Configure and build#
Run these commands from the Mooncake repository root. Keep the source, build, and Python interpreter paths explicit so CMake, the wheel, and validation scripts use the same checkout:
export MOONCAKE_ROOT_DIR="$PWD"
export MOONCAKE_STORE_RS_DIR="$MOONCAKE_ROOT_DIR/mooncake-store-rs"
export MOONCAKE_BUILD_DIR="$MOONCAKE_ROOT_DIR/build/store-rs"
export MOONCAKE_PYTHON_BIN="$(command -v python3)"
cmake -S "$MOONCAKE_ROOT_DIR" -B "$MOONCAKE_BUILD_DIR" \
-DPython3_EXECUTABLE="$MOONCAKE_PYTHON_BIN" \
-DWITH_STORE=ON \
-DWITH_STORE_RUST=OFF \
-DWITH_STORE_RS=ON \
-DWITH_TE=ON \
-DUSE_TENT=ON \
-DBUILD_SHARED_LIBS=ON \
-DCMAKE_BUILD_TYPE=Release
cmake --build "$MOONCAKE_BUILD_DIR" --target build_store_rs --parallel
This out-of-tree build provides the native artifacts and standalone binaries. For a Python wheel only, skip the separate CMake build command; the wheel builder configures and builds its own CMake tree.
The root Python wheel packages the C++ Store facade and, when configured with WITH_STORE_RS=ON, the Store-RS extension and the three standalone commands:
SKBUILD_CMAKE_ARGS="-DWITH_STORE=ON -DWITH_STORE_RUST=OFF \
-DWITH_STORE_RS=ON -DWITH_TE=ON -DUSE_TENT=ON \
-DBUILD_SHARED_LIBS=ON -DPython3_EXECUTABLE=$MOONCAKE_PYTHON_BIN" \
"$MOONCAKE_PYTHON_BIN" -m pip wheel . --no-deps --wheel-dir dist/store-rs
"$MOONCAKE_PYTHON_BIN" -m venv .venv-store-rs
.venv-store-rs/bin/python -m pip install dist/store-rs/mooncake_transfer_engine-*.whl
The root wheel owns the mooncake Python package. Build and install one wheel, then select its Store backend before importing mooncake.store:
Setting |
Backend |
|---|---|
Unset or cpp |
C++ Store |
rs |
Store-RS, included by WITH_STORE_RS=ON |
The facade reads MOONCAKE_STORE_BACKEND when mooncake.store is first imported. Use exactly cpp or rs. The setting does not change the standalone command names.
MOONCAKE_STORE_BACKEND=rs .venv-store-rs/bin/python -c \
"from mooncake.store import MooncakeDistributedStore; print(MooncakeDistributedStore)"
.venv-store-rs/bin/mooncake-store-rs-client --help
.venv-store-rs/bin/mooncake-store-rs-admin --help
.venv-store-rs/bin/mooncake-store-rs-bench --help
Validate and continue#
For workspace unit tests and installed-package smoke coverage, run
scripts/ci/run_store_rs_smoke.sh after installing the CMake python
component. The Store-RS validation guide
lists the required CMake paths and the direct commands for heavier scenarios.
The Store-RS deployment index links to configuration, operator, and scenario-specific validation guides. For API details, see the Rust API, the Python API, and the Admin HTTP API.