Cargo, crates.io
Кратко
опции оптимизации компиляции
// Filename: Cargo.toml // opt-level — степень оптимизации, 0-3; чем выше, тем дольше компиляция и быстрее работа [profile.dev] opt-level = 0 [profile.release] opt-level = 3Doc 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//!обычно описывает весь крейт или модуль,///— функцию

рабочее пространство (workspace)
Workspace — это набор пакетов, использующих один и тот же Cargo.lock и один каталог вывода.
можно использовать для управления несколькими модулями с одинаковой функциональностью
они используют общий Cargo.lock и общий output dir
прочее
cargo installслужит для установки и использования binary crate
Источник
https://doc.rust-lang.org/book/ch14-00-more-about-cargo.html
…
Расширение Cargo собственными командами
Cargo устроен так, что его можно расширять новыми подкомандами, не изменяя сам Cargo. Если бинарник в вашем $PATH называется cargo-something, его можно запустить как подкоманду Cargo командой cargo something. Такие собственные команды также показываются при запуске cargo --list. Возможность устанавливать расширения через cargo install и запускать их так же, как встроенные инструменты Cargo, — очень удобное преимущество такого устройства Cargo!
Итог
Обмен кодом через Cargo и crates.io — часть того, что делает экосистему Rust полезной для множества разных задач. Стандартная библиотека Rust невелика и стабильна, но крейты легко публиковать, использовать и улучшать по своему графику, отличному от графика языка. Не стесняйтесь выкладывать полезный вам код на crates.io — вероятно, он будет полезен и кому-то ещё!