Docs/Rust / Cargo

Rust / Cargo

Available now. Basecamp prepares a reproducible Rust environment while Cargo remains responsible for dependency resolution and builds.

New to Basecamp?Start with the quickstart →
Available

Rust / Cargo is the current production stack and the reference implementation for the Basecamp environment model.

Keep the normal Rust project

Cargo.toml
Cargo.lock
rust-toolchain.toml
.cargo/config.toml   # optional
basecamp.lock

Basecamp does not replace Cargo.toml or Cargo.lock.basecamp.lock records their digests and locks the wider development environment. Native Cargo configuration is fingerprinted as well when present.

First setup

basecamp init

If the project has not pinned Rust, Basecamp can offer to createrust-toolchain.toml. If Cargo.lock is missing, Basecamp uses the prepared Cargo binary to run cargo generate-lockfile and writes Cargo.lock to the project root.

Reproduce the environment

basecamp sync

The Rust toolchain is downloaded directly from the official Rust distribution service and verified by SHA-256. Cargo packages are materialized by native cargo vendor from the project's configured registries or Git sources, and Cargo's generated source configuration is preserved. Shared layers are reused across projects.

Build with Cargo, not Basecamp

basecamp shell
cargo build
cargo test
cargo run

The shell activates Basecamp's Rust toolchain and an isolated Cargo configuration. The application build remains a normal Cargo operation.

When Cargo.toml, Cargo.lock, or the toolchain changes

basecamp update

sync refuses to rewrite a stale lock. update is the explicit command that re-resolves the environment and writes a new basecamp.lock.

Air-gapped sandbox

basecamp bundle pack
# copy the resulting .basecamp archive into the isolated environment
basecamp bundle unpack project.basecamp

After import, the Rust toolchain and Cargo package layer can be used without network access.