루스트 프로젝트는 크레이트라는 기본 컴파일 단위로 구성되며, 라이브러리 크레이트(lib 크레이트) 또는 실행 파일 크레이트(binary 크레이트)으로 분류된다. 패키지는하나 이상의 크레이트를 그룹화하며, Cargo.toml 및 Cargo.lock 파일에 메타데이터 및 종속성을 지정하여 관리된다. 라이브러리 크레이트의 루트 파일은 src/lib.rs이고, 바이너리 크레이트의 루트 파일은 src/main.rs이다. 유닛 테스트 및 성능 테스트는 각각 tests/ 및 benches/ 디렉터리에 위치한다. 대규모 프로젝트에서는 워크스페이스를 사용하여 단일 프로젝트 내의 여러 패키지를 관리한다. 워크스페이스는 관련 패키지 간의 의존성 관리, 빌드 및 테스트를 간소화하여 일관성 및 효율성을 보장한다. 워크스페이스의 Cargo.toml 파일은 워크스페이스 멤버 및 공유 의존성을 정의하여 패키지 간의 중복 의존성을 피할 수 있다. 패키지 간의 의존성은 워크스페이스 내에서 선언하여 패키지가 서로의 코드를 사용할 수 있도록 한다. 이러한 구조화된 접근 방식은 대규모 루스트 개발을 촉진하고 유지 보수를 개선한다. 마지막으로는 루스트 프로젝트 호스팅 플랫폼인 Leapcell에 대한 홍보 메시지로 마무리된다.
dev.to
Mastering Large Project Organization in Rust
