728x90
이건 뭘까
1. 릴리즈 프로필을 통한 빌드 커스터마이징하기
릴리즈 프로필: Cargo.toml에서 설정할수 있음
- dev 프로필: 개발에 적합한 기본값으로 정의
- release 프로필: 릴리즈용 설정을 기본값으로 정의
옵션
- opt-level: 최적화 레벨. 0~3. 높을수록 최적화를 많이 하므로 컴파일 시간이 늘어남
- dev: 0
- release: 3
2. crates.io에 라이브러리 배포하기
크레이트 등기소(registry)
- 패키지 배포하는 곳
문서화 주석(document comment)
- 슬래시 세 개(///)를 사용.
- 텍스트 서식을 위한 마크다운 표기법 지원
- 문서화할 아이템 앞에 문서화 주석을 배치하면 됨
- cargo doc을 실행하면 문서화 주석으로부터 HTML문서를 생성할수 있음.
- target/doc 디렉터리에 생성됨
- cargo doc --open 을 실행하면 HTML 생성하고 브라우저에 문서를 띄워줌
- cargo test를 실행하면 문서에 들어있던 예시 코드들을 테스트할수 있음
- 슬래시 두 개 느낌표 하나 (//!)를 사용하면 주석을 담고 있는 아이템을 문서화함
- 크레이트 혹은 모듈 전체에 대한 문서를 작성하는데 쓰임
공개 API 설정(Re-exports)
- pub use를 사용해서 공개 구조를 만들수 있음
- 내부 구조를 바꾸는게 아니라 쉽게 사용할수 있도록 추가하는 것
Crates.io 계정 설정
- cargo login {API키}
크레이트 메타데이터 추가
- Cargo.toml 에 추가
- name: 이름
- 등록된 크레이트 이름은 중복 불가임
- version: 프로그램 빌드 버전
- edition:
- description: 크레이트 설명
- license
- OR로 여러 라이센스 지정 가능
크레이트 배포
- cargo publish
- 버전 바꿔서 배포하면 새 버전으로 업데이트됨
- 올라간 버전은 제거할수 없음
- 비밀키 등이 업로드되면 삭제할수 없으므로 리셋하고 새로운 비밀키 사용해야함
크레이트 버전 끌어내기
- 이미 올라간 버전은 제거할수 없지만 향후 프로젝트들이 의존성으로 추가하는 것을 방지함
- cargo yank
- --undo 옵션으로 다시 의존성 허용 가능
3. 대규모 작업을 위한 작업공간 (workspace) 구성하기
Cargo.toml 에 workspace 절 생성
- package 절을 사용하지 않음
- members에 사용할 크레이트 이름을 작성함
dependencies 절에 라이브러리 경로 추가
4. crates.io로부터 바이너리 설치하기
cargo install {패키지이름}
- 바이너리 타겟을 가진 패키지만 설치할 수 있음
https://doc.rust-kr.org/ch14-00-more-about-cargo.html
https://doc.rust-lang.org/cargo/
'STUDY > Rust' 카테고리의 다른 글
Rust - 19. 스마트 포인터 (2) Rc<T>, RefCell<T>, 순환 참조 (1) | 2024.03.23 |
---|---|
Rust - 18. 스마트 포인터 (1) Box<T>, Deref, Drop (0) | 2024.03.21 |
Rust - 16. 반복자 (0) | 2024.03.14 |
Rust - 15. 클로저 (0) | 2024.03.11 |
Rust - 14. I/O 프로젝트 CLI 프로그램 만들기 (0) | 2024.03.11 |