Path dependencies expect a sibling Nautilus Trader tree:
~/work/nautilus_trader_quantity_commission # adapters + persistence
~/work/catalog_capture # this repo
make bootstrap-deps # recommended: resolve sibling + checkout CI pin
# make bootstrap-deps-local # resolve sibling only (no pin checkout)- Uses
NAUTILUS_TRADER_PATHif set, else existing../nautilus_trader_quantity_commission. - If missing, clones
graceyangfan/nautilus_traderinto../nautilus_trader_quantity_commission. make bootstrap-depschecks out the CI-pinned revision (--pin-ci).- Runs a workspace check.
First-time / reproducible builds should use the pin. Use bootstrap-deps-local only
when you intentionally develop against a different Nautilus checkout.
| Catalog Capture | Nautilus Trader ref |
|---|---|
| 0.1.x / main | c4377894cf7a46a6643f084a1188cd425a73034f |
NAUTILUS_TRADER_REF in .github/workflows/ci.yml and scripts/bootstrap-deps.sh
select the same immutable project-fork commit. It merges official develop with
inventory-unit commissions, exact gross execution quantities, unresolved command
retention and terminal quantity normalization. Predict uses these Native APIs
directly; an unmodified upstream checkout is not interchangeable.
The current pin includes official develop 288990482b312d18cf17b9c80b0d5159d3b591c6
(NautilusTrader 0.68.0).
See quantity commissions for supported account/fee semantics and validation for checks.
Rust 1.99.1 (rust-toolchain.toml):
rustup toolchain install 1.99.1
rustup component add rustfmt clippy --toolchain 1.99.1This project uses huacnlee/cargo, pinned with release checksums in
scripts/cargo.sh. All Make targets, build/service scripts, hooks, and CI use
this entry point. From the repository root, run direct commands as
./scripts/cargo.sh <command>. When invoked by its absolute path from elsewhere,
the wrapper still operates from the workspace root.
make install-cargo
./scripts/cargo.sh --versionBootstrap also installs it. The binary lives under .tools/cargo/; automatic
updates are disabled. Cache policy is in .cargo/config.toml. rustup supplies
the compiler, rustfmt, and Clippy; its system installation can remain available
to other repositories.
# Standard public profile (Binance + Deribit + Hyperliquid + Lighter)
make build-release-capture
# Deployable binary: ./bin/catalog-capture-cli (target/ is only build cache)
# Optional: create a self-contained cloud deployment archive
./scripts/package-cloud.sh --config examples/capture.multi-venue-mainnet.toml
# All venues
make build-release
# Single venue (debug)
make build-slim FEATURES=venue-deribit
# Smaller binary (slower compile)
make build-release-smallVenue features: venue-binance, venue-bybit, venue-deribit, venue-okx,
venue-hyperliquid, venue-lighter, venue-lighter-ext, venue-extended, venue-predict, or
all-venues. A slim binary must include every venue referenced by its TOML:
CAPTURE_FEATURES=venue-binance,venue-predict make build-release-captureexamples/*.toml are CLI configs, not cargo examples.
Build intermediates live in ~/.cargo/targets; binaries remain in target/.
See cache management.
make cache-size # local target + all central caches
make clean # this project's local and central build cacheLive probes under tests/ may need PyO3 from the same Nautilus revision.
Not required for the Rust product path.