Cargo Crates.io
이해
- 컴파일 최적화 옵션
// Filename: Cargo.toml // opt-level은 최적화 정도(0~3)이며 높을수록 컴파일 시간은 길고 실행 효율은 높습니다. [profile.dev] opt-level = 0 [profile.release] opt-level = 3 - Doc String
//! # My Crate //! //! `my_crate` is a collection of utilities to make performing certain //! calculations more convenient. /// Adds one to the number given. /// /// # Examples /// /// ``` /// let arg = 5; /// let answer = my_crate::add_one(arg); /// /// assert_eq!(6, answer); /// ``` pub fn add_one(x: i32) -> i32 { x + 1 }cargo doc으로 문서를 생성합니다.//!는 보통 전체 crate 또는 module을 설명하고,///는 보통 함수를 설명합니다.

- 워크스페이스
같은 기능을 하는 여러 모듈을 관리할 수 있습니다. 모듈은 동일한 Cargo.lock과 output dir를 공유합니다.A workspace is a set of packages that share the same Cargo.lock and output directory
- 기타
cargo install은 binary crate를 설치하고 사용하는 데 사용합니다.
출처
https://doc.rust-lang.org/book/ch14-00-more-about-cargo.html
…
사용자 정의 명령으로 Cargo 확장하기
Cargo는 코드를 수정하지 않고도 새 하위 명령을 추가해 확장할 수 있도록 설계되었습니다. $PATH의 binary 이름이 cargo-something이면 cargo something을 실행해 Cargo 하위 명령처럼 사용할 수 있습니다. 이런 사용자 정의 명령은 cargo --list를 실행할 때도 표시됩니다. cargo install로 확장 기능을 설치한 뒤 기본 Cargo 도구처럼 실행할 수 있다는 점은 Cargo 설계의 매우 편리한 장점입니다!
요약
Cargo와 crates.io 에서 코드를 공유할 수 있다는 점은 Rust 생태계를 다양한 작업에 유용하게 만드는 요소입니다. Rust 표준 라이브러리는 작고 안정적이지만 crate는 언어와 다른 일정으로 쉽게 공유하고 사용하고 개선할 수 있습니다. 자신에게 유용한 코드를 crates.io 에 공유하는 것을 주저하지 마세요. 다른 사람에게도 유용할 가능성이 큽니다!