Build from source
Build the CLI and console, then let Docker build and run the exchange services from your checkout.
Requirements
- Rust and Cargo (tested with 1.99), plus a C compiler.
- Node 24 LTS and npm.
- Docker with the Compose plugin.
Build and run
git clone https://github.com/awesomepandapig/mmx.git
cd mmx
npm --prefix console ci
npm --prefix console run build
cargo build --release -p mmx
export PATH="$PWD/target/release:$PATH"
export MMX_COMPOSE_FILE="$PWD/deploy/compose.yaml"
mmx local up --build
mmx local status
mmx local credentialsThe container build installs the services' native toolchain. The CLI keeps operator settings and
credentials under deploy/config and deploy/.env; data lives in Docker volumes.
Continue with Getting started. Use mmx local down to stop the deployment while
preserving its data. Rebuild changed services with mmx local up --build.
Native service development
To build and test all Rust services on the host, install Rust 1.99.1 with rustfmt and Clippy,
CMake 3.30 or newer, Clang/libclang, JDK 21 or newer, Aeron 1.54.0, and Node 24 LTS.
The Aeron version must match rusteron-client.
Build the embedded console before compiling the operator CLI:
npm --prefix console ci
npm --prefix console run build
cargo build --workspace --release --locked
cargo test --workspace --all-features --locked
cargo clippy --workspace --all-features --all-targets --locked
cargo fmt --all -- --checkThe repository's tools/ directory contains load generators, invariant checks, profiling,
and local development helpers. Production operations use the mmx CLI. Run crash tests
against disposable state; tools/scripts/mmx.py verify --orders 20000 restarts the engine.
The landing page and documentation are independent npm packages. Run npm ci followed by
npm run dev in web/ or docs/. See the repository's
deployment guide for Vercel setup.