Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Экосистема Rust

Экосистема Rust состоит из ряда инструментов, основными из которых являются:

  • rustc: компилятор Rust, который превращает файлы .rs в исполняемые файлы и другие промежуточные форматы.

  • cargo: менеджер зависимостей и система сборки Rust. Cargo умеет загружать зависимости, обычно размещённые на https://crates.io, и передавать их rustc при сборке проекта. Cargo также включает встроенное средство запуска тестов, которое выполняет модульные тесты.

  • rustup: установщик и средство обновления инструментария Rust. Этот инструмент используется для установки и обновления rustc и cargo при выходе новых версий Rust. Кроме того, rustup может загружать документацию стандартной библиотеки. Можно одновременно установить несколько версий Rust, и rustup позволит переключаться между ними по мере необходимости.

Ключевые моменты:

  • У Rust стремительный график релизов: новая версия выходит каждые шесть недель. Новые версии обратно совместимы со старыми и при этом добавляют новые возможности.

  • Существует три вида релизов: «stable», «beta» и «nightly».

  • Новые возможности тестируются в «nightly», а «beta» — это то, что становится «stable» каждые шесть недель.

  • Зависимости также могут подтягиваться из альтернативных реестров, git-репозиториев, локальных папок и других источников.

  • У Rust также есть редакции: текущая редакция — Rust 2024. Предыдущими были редакции Rust 2015, Rust 2018 и Rust 2021.

    • Редакциями позволено вносить обратно несовместимые изменения в язык.

    • Чтобы избежать сбоев, редакцию для своего пакета можно явно указать в файле Cargo.toml.

    • Чтобы избежать разделения экосистемы, компилятор Rust может смешивать код, написанный для разных редакций.

    • Стоит упомянуть, что использование компилятора напрямую, а не через cargo, является редким явлением (большинство пользователей никогда этого не делают).

    • Стоит отметить, что сам Cargo — чрезвычайно мощный и всеобъемлющий инструмент. Он умеет многое, в том числе:

    • Подробнее читайте в официальной книге по Cargo