crate

패키지와 크레이트 경계

Cargo 패키지, 크레이트, 모듈을 구분하면 Rust 프로젝트 구조가 덜 헷갈립니다.

판단 기준

배포 단위와 컴파일 단위, 이름공간 단위를 나눠 봤는가

package

Cargo.toml을 가진 프로젝트 단위입니다.

crate

컴파일되는 라이브러리나 실행 파일 단위입니다.

module

코드를 이름공간과 공개 범위로 나누는 단위입니다.

target

src/lib.rs와 src/main.rs가 생성하는 결과물을 구분합니다.