cargo

Rust project의 dependency, build, test, documentation, package, publish workflow를 관리하는 표준 도구.

Cargo.toml manifest와 Cargo.lock lockfile을 기준으로 crate graph를 해석하고 rustc, rustdoc, external Cargo subcommand를 실행한다.

cargo는 rustup toolchain에 포함된다. platform별 설치는 Rust Installation을 따른다.

rustup default stable
cargo --version
cargo [options] command [args]
  • cargo COMMAND [options…] [args…]
  • new PATH, init [PATH]: 새 package 생성 또는 기존 directory 초기화.
  • add CRATE, remove CRATE: manifest dependency 추가·제거.
  • generate-lockfile, update: lockfile 생성 또는 허용 범위 내 version 갱신.
  • metadata: resolved package graph를 JSON으로 출력.
  • tree: dependency graph를 tree로 표시.
  • check: code generation 없이 빠르게 type check.
  • build: 현재 package 또는 workspace compile.
  • run: binary target build 후 실행.
  • test: unit, integration, documentation test 실행.
  • bench: benchmark target 실행. stable/nightly 요구사항은 benchmark framework에 따라 확인한다.
  • doc: package API documentation 생성.
  • clean: Cargo가 생성한 build artifact 삭제. 큰 workspace에서는 삭제 범위를 먼저 확인한다.
  • fetch: lockfile dependency를 미리 내려받음.
  • vendor: dependency source를 local directory로 복사.
  • install CRATE: binary crate를 compile해 $CARGO_HOME/bin에 설치.
  • package: publish archive를 검증하고 생성.
  • publish: registry에 package upload. token과 package 내용을 반드시 사전 점검한다.
  • yank VERSION: 새 dependency resolution에서 특정 release 사용을 억제하며 기존 lockfile 사용을 삭제하지는 않는다.
  • -p SPEC, –package SPEC: workspace package 선택.
  • –workspace: workspace 전체 선택.
  • –all-targets: library, binary, example, test, benchmark target 포함.
  • –features FEATURES, –all-features, –no-default-features: feature selection.
  • –release: optimized release profile 사용.
  • –target TRIPLE: compilation target 지정.
  • –locked: lockfile 변경이 필요하면 실패.
  • –frozen: network와 lockfile 변경을 모두 금지.
  • –offline: network를 사용하지 않고 local cache만 사용.
  • –timings: build timing report 생성.
  • -v, -vv: 상세 output.
cargo new my-app
cd my-app
cargo add serde --features derive
cargo check
cargo build --release
cargo run -- --help
cargo test --workspace
cargo tree --duplicates
cargo doc --no-deps --open
cargo install ripgrep --locked

Cargo configuration의 file location, precedence, network, target, alias, credential 지침은 Cargo config를 참고한다.

  • cargo publish 전에는 cargo package –list와 archive 내용을 확인하고 secret이나 local file이 포함되지 않았는지 검토한다.
  • cargo install은 third-party source를 local machine에서 compile한다. crate 이름, version, source, lockfile 사용 여부를 확인한다.
  • build script와 procedural macro는 build 중 code를 실행할 수 있으므로 dependency를 신뢰 경계로 취급한다.
  • 재현 가능한 CI에서는 committed Cargo.lock 정책에 맞춰 –locked 또는 –frozen을 사용한다.
  • dependency feature 충돌은 cargo tree -e featurescargo metadata로 조사한다.
  • native library 오류는 build script output을 보기 위해 cargo build -vv를 사용한다.

+ cargo --help

로컬 실행 파일이 없어 live output을 수집하지 않았다.
cargo --help
cargo help COMMAND
cargo --list

+

  • codex:: 2026-07-20 Added Cargo project, dependency, build, package, safety, and troubleshooting reference.
  • /home/u613600155/domains/cli.zerotymer.net/public_html/data/pages/rust/cargo/ko.txt
  • 마지막으로 수정됨: 2026/07/20 13:13
  • (바깥 편집)