Rust - Basic - 13 - Cargo Crates.io

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 でドキュメントを生成します

    1

    2

  • ワークスペース

    workspace は同じ Cargo.lock と output directory を共有する package の集合です。

    同じ機を持つ複数のモジュールを管理できます

    それらは同じ Cargo.lock と output dir を共有します

  • その他

    cargo install binary crate をインストールして使うために使います

参照元

https://doc.rust-lang.org/book/ch14-00-more-about-cargo.html

…

カスタムコマンドで Cargo を拡張する

Cargo は本体を変せず、新しいサブコマンドで拡張できるよう設計されています。$PATH にあるバイナリが cargo-something という名前なら、cargo something を実行して Cargo サブコマンドのように使えます。このようなカスタムコマンドは cargo --list にも表示されます。cargo install で拡張機をインストールし、組み込みの Cargo ツールと同じように実行できるのは、Cargo の設計がもたらす非常に便利な利です。

まとめ

Cargo と crates.io でコードを共有できることが、Rust エコシステムを多様な途に役立てています。Rust の標準ライブラリは小さく安定していますが、crate は言語本体とは異なるペースで簡単に共有、利、改善できます。分に役立つコードを crates.io で共有することをためらわないでください。きっと他の誰かにも役立ちます。