Rust - Basic - 13 - Cargo Crates.io

Cargo Crates.io

Verständnis

  • Optionen zur Kompilierungsoptimierung

    // Filename: Cargo.toml
    // opt-level 为优化程度,0-3,越高编译时间越长,运行效率越快
    [profile.dev]
    opt-level = 0
    
    [profile.release]
    opt-level = 3
    
  • Dokumentations-Strings

    //! # 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
    }
    

    Dokumentation mit cargo doc erzeugen.

    //! beschreibt gewöhnlich ein gesamtes Crate oder Modul, /// gewöhnlich eine Funktion.

    1

    2

  • Arbeitsbereiche

    A workspace is a set of packages that share the same Cargo.lock and output directory

    Damit lassen sich mehrere Module mit gleicher Funktion verwalten.

    Sie teilen dieselbe Cargo.lock und dasselbe Ausgabeverzeichnis.

  • Sonstiges

    cargo install installiert und verwendet Binary-Crates.

Quelle

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

…

Cargo mit eigenen Befehlen erweitern

Cargo lässt sich durch neue Unterbefehle erweitern, ohne Cargo selbst zu ändern. Wenn eine Binärdatei in deinem $PATH cargo-something heißt, kannst du sie mit cargo something wie einen Cargo-Unterbefehl ausführen. Solche Befehle erscheinen auch in cargo --list. Mit cargo install Erweiterungen zu installieren und wie eingebaute Cargo-Werkzeuge auszuführen, ist ein großer Vorteil des Designs.

Zusammenfassung

Code mit Cargo und crates.io zu teilen, macht das Rust-Ökosystem für viele Aufgaben nützlich. Die Standardbibliothek ist klein und stabil; Crates lassen sich jedoch leicht teilen, verwenden und unabhängig von der Sprache weiterentwickeln. Nützlichen Code auf crates.io zu veröffentlichen, lohnt sich wahrscheinlich auch für andere.