Тема |
Описание |
Доп. |
|---|---|---|
crate cargo-release дополняет возможности crate cargo_publish общепринятыми методами выпуска, такими как валидация, управление версиями, тегирование и отправка. Процесс можно настраивать, но с настройками по умолчанию, которые помогут вам быстро приступить к работе. crate release-plz |
||
Как принято распространять cli утилиты написанные на Rust чтобы можно было поделиться с другими участниками сообщества? |
Первый шаг — публикация на crates.io, так что cargo install my-cli-app уже будет работать (посмотри ripgrep, dust, exa, cargo-deny для примеров), а дальше уже можно настраивать CI для создания бинарных релизов в GitHub Releases, а дальше можно пакеты собирать под разные пакетные менеджеры... в общем, есть чем заняться StructOpt (и его версия внутри clap 3.0) — это лучшее решение, которое мне известно и я им полностью доволен (я в DOTS его использую) |
|
Пример создания и подключение библиотеки |
По умолчанию используется имя файла src/lib.rs, а имя библиотеки по умолчанию - имя пакета. Создание
File Cargo.toml:
File src/lib.rs:
Сборка Сборка для данной архитектуры. По умолчанию используется хост-архитектура.
Подключение В другом проекте Файл Cargo.toml:
Файл main.rs:
|
|
Публикация на crates.io Как публиковать свои пакеты на crates.io 👾 Найти идею которая еще не реализованна в репозитории библиотек и реализовать ее! |
1. Создание нового проекта В Rust есть два типа проектов: бинарный (
Структура будет примерно такой:
2. Файл В нём указывается имя, версия и зависимости:
3. Точка входа для библиотеки — Здесь ты определяешь публичный API:
Всё, что надо сделать доступным пользователям, нужно объявить через 4. Тесты Rust поддерживает встроенные тесты:
Запускаются так:
5. Документация Комментарии с
Документацию можно сгенерировать:
6. Публикация Чтобы поделиться библиотекой:
В итоге библиотека будет доступна другим через:
|
|