Модуль 7 · Публикация крейтов
Публикация на crates.io
cargo publish загружает крейт в реестр. После этого любой разработчик может добавить его как зависимость.
🔧 Практика 🕐 ~20 минут
🔑
Шаг 1 — Получить API-токен
1
Зарегистрируйтесь на
crates.io через GitHub-аккаунт2
Перейдите в Account Settings → API Tokens → New Token
3
Сохраните токен командой:
cargo login ваш_токен_здесь
Токен сохраняется в ~/.cargo/credentials.toml
🚀
Шаг 2 — Опубликовать
Терминал
cargo publish --dry-run # 1. Убедиться что всё ОК
cargo publish # 2. Опубликовать
✅ После публикации крейт появится на
crates.io/crates/имя, а документация — на docs.rs/имя (генерируется автоматически в течение нескольких минут).🔄
Обновление — новая версия
Одну и ту же версию нельзя опубликовать дважды. Для обновления нужно увеличить версию в Cargo.toml:
Правила SemVer
PATCH 0.1.0 → 0.1.1 — исправление багов, без изменения APIMINOR 0.1.0 → 0.2.0 — новые возможности, обратная совместимость сохраненаMAJOR 0.1.0 → 1.0.0 — breaking changes, API изменился несовместимо# Обновили Cargo.toml:
version = "0.1.1"
# И публикуем снова:
cargo publish
🚫
cargo yank — скрыть версию
Удалить опубликованный крейт нельзя — но можно сделать версию "yanked": она не будет предлагаться для новых проектов, но существующие продолжат её получать.
Терминал
cargo yank --version 0.1.0 # скрыть версию
cargo yank --version 0.1.0 --undo # отменить yank
📌 Что важно запомнить
→ cargo login токен → cargo publish — полный процесс публикации
→ Одну версию нельзя опубликовать дважды — нужно увеличить version
→ docs.rs генерирует документацию автоматически после публикации
→ cargo yank — скрыть версию (не удалить)
Тест
3 вопроса