Поиск…


Вступление

Cargo - менеджер пакетов Rust, используемый для управления ящиками (термин Rust для библиотек / пакетов). Cargo преимущественно извлекает пакеты из crates.io и может управлять сложными деревьями зависимостей с определенными требованиями к версии (с использованием семантического управления версиями). Cargo также может помочь в строительстве, эксплуатации и управлении проектами Rust с cargo build , cargo run и cargo test (среди других полезных команд).

Синтаксис

  • груз new crate_name [--bin]
  • груз init [--bin]
  • сборка груза [--release]
  • грузовой ход [--release]
  • проверка груза
  • испытание груза
  • грузовой стенд
  • обновление груза
  • грузовой пакет
  • опубликовать груз
  • [un] установить binary_crate_name
  • поиск груза crate_name
  • грузовая версия
  • Вход для грузовика api_key

замечания

  • В настоящий момент подкоманда cargo bench требует, чтобы ночная версия компилятора работала эффективно.

Создать новый проект

Библиотека

cargo new my-library

Это создает новый каталог с именем my-library содержащий файл конфигурации груза и исходный каталог, содержащий единственный исходный файл Rust:

my-library/Cargo.toml
my-library/src/lib.rs

Эти два файла уже содержат базовый скелет библиотеки, так что вы можете сразу же пройти cargo test на cargo test (из каталога my-library ), чтобы проверить, все ли работает.

двоичный

cargo new my-binary --bin

Это создает новый каталог с именем my-binary с аналогичной структурой, такой как библиотека:

my-binary/Cargo.toml
my-binary/src/main.rs

На этот раз cargo установит простой Hello World, который мы сможем запустить сразу с cargo run .


Вы также можете создать новый проект в текущем каталоге с помощью подкатегории init :

cargo init --bin

Как и выше, удалите флаг --bin для создания нового проекта библиотеки. Имя текущей папки автоматически используется как имя корзины.

Проект строительства

отлаживать

cargo build

Релиз

Создание с --release флага --release допускает определенные оптимизации компилятора, которые не выполняются при построении отладочной сборки. Это заставляет код работать быстрее, но время компиляции еще больше. Для обеспечения оптимальной производительности эта команда должна использоваться после того, как сборка готово.

cargo build --release

Тестирование

Основное использование

cargo test

Показать выход программы

cargo test -- --nocapture

Запустить конкретный пример

cargo test test_name

Привет, мирская программа

Это сеанс оболочки, показывающий, как создать программу «Hello world» и запустить ее с помощью Cargo:

$ cargo new hello --bin
$ cd hello
$ cargo run
   Compiling hello v0.1.0 (file:///home/rust/hello)
     Running `target/debug/hello`
Hello, world!

После этого вы можете редактировать программу, открыв src/main.rs в текстовом редакторе.

Публикация ящика

Чтобы опубликовать ящик на crates.io , вы должны войти в систему с Cargo (см. « Подключение груза к учетной записи Crates.io »).

Вы можете упаковать и опубликовать свой ящик со следующими командами:

cargo package
cargo publish

Любые ошибки в вашем файле Cargo.toml будут выделены во время этого процесса. Вы должны убедиться, что обновите свою версию и убедитесь, что ваш .gitignore или Cargo.toml исключает любые нежелательные файлы.

Подключение груза к учетной записи Crates.io

Учетные записи crates.io создаются путем входа в систему с GitHub; вы не можете подписаться на какой-либо другой метод.

Чтобы подключить свою учетную запись GitHub к crates.io, нажмите кнопку « Войти с GitHub » в верхнюю панель меню и авторизуйте crates.io для доступа к вашей учетной записи. Затем вы запишете вас в crates.io, если все будет хорошо.

Затем вы должны найти свой ключ API , который можно найти, нажав на ваш аватар, выбрав « Настройки учетной записи » и скопировав строку, которая выглядит так:

cargo login abcdefghijklmnopqrstuvwxyz1234567890rust

Это должно быть вставлено в вашем терминале / командной строке, и должен аутентифицировать вас с вашей локальной cargo установкой.

Будьте осторожны с вашим ключом API - он должен храниться в секрете, как пароль, иначе ваши ящики могут быть угнаны!



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow