cargo workspace

워크스페이스는 여러 crate를 하나의 빌드 경계로 묶는다

root Cargo.toml은 멤버 crate 목록을 알고, 각 crate는 path dependency로 서로를 참조하며 하나의 lockfile을 공유한다.

Root

Cargo.toml

[workspace]members가 빌드할 crate 집합을 선언한다.

Members

adder add-one

실행 crate와 library crate를 분리해 역할을 작게 유지한다.

Shared output

Cargo.lock target/

의존성 해석과 빌드 산출물이 workspace 단위로 모인다.

구성 책임 확인할 파일
members cargo build/test가 방문할 crate 목록을 고정한다. root Cargo.toml
path dependency 한 member가 다른 member를 로컬 경로로 참조한다. crate별 Cargo.toml
shared lock 같은 의존성 버전을 workspace 전체에 적용한다. Cargo.lock

핵심: crate는 작게 나누되 빌드와 의존성 결정은 workspace 루트에서 한 번에 관리한다.