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

Додаток E: Видання

У Розділі 1 ви побачили, що cargo new додає трохи метаданих до вашого файлу Cargo.toml про видання. У цьому додатку йдеться про те, що це означає!

Мова Rust і компілятор мають шеститижневий цикл випусків, що означає, що користувачі отримують постійний потік нових можливостей. Інші мови програмування випускають більші зміни рідше; Rust випускає менші оновлення частіше. Після деякого часу всі ці дрібні зміни складаються. Але від випуску до випуску може бути важко озирнутися назад і сказати: “Ого, між Rust 1.10 і Rust 1.31 Rust дуже змінився!”

Приблизно кожні три роки команда Rust створює нове Rust видання. Кожне видання об’єднує можливості, що з’явилися, в чіткий пакет із повністю оновленою документацією та інструментарієм. Нові видання виходять у межах звичайного шеститижневого процесу випусків.

Видання слугують різним цілям для різних людей:

  • Для активних користувачів Rust нове видання об’єднує поступові зміни в легкий для розуміння пакет.
  • Для тих, хто не користується Rust, нове видання сигналізує, що з’явилися деякі значні вдосконалення, які можуть змусити знову придивитися до Rust.
  • Для тих, хто розробляє Rust, нове видання надає точку збору для проєкту в цілому.

На момент написання цієї книги доступні чотири видання Rust: Rust 2015, Rust 2018, Rust 2021 і Rust 2024. Ця книга написана з використанням ідіом видання Rust 2024.

Ключ edition у Cargo.toml вказує, яке видання компілятор має використовувати для вашого коду. Якщо ключа не існує, Rust використовує 2015 як значення видання з міркувань зворотної сумісності.

Кожен проєкт може вибрати видання, відмінне від стандартного видання 2015 року. Видання можуть містити несумісні зміни, такі як включення нового ключового слова, що конфліктує з ідентифікаторами в коді. Однак, якщо ви не оберете ці зміни, ваш код і далі буде компілюватися, навіть якщо ви оновите версію компілятора Rust, яку використовуєте.

Усі версії компілятора Rust підтримують будь-яке видання, яке існувало до випуску цього компілятора, і вони можуть пов’язувати крейти будь-яких підтримуваних видань разом. Зміни видань впливають лише на те, як компілятор спочатку аналізує код. Тому, якщо ви використовуєте Rust 2015 і один із ваших залежних крейтів використовує Rust 2018, ваш проєкт скомпілюється і зможе використовувати той залежний крейт. Зворотна ситуація, коли ваш проєкт використовує Rust 2018, а залежний крейт використовує Rust 2015, також працює.

Щоб було зрозуміло: більшість можливостей буде доступна в усіх виданнях. Розробники, які використовують будь-яке видання Rust, і надалі бачитимуть поліпшення в міру виходу нових стабільних випусків. Однак у деяких випадках, головним чином коли додаються нові ключові слова, деякі нові можливості можуть бути доступні лише в пізніших виданнях. Вам потрібно буде перемкнутися на інші видання, якщо ви хочете скористатися такими можливостями.

Докладніше дивіться в The Rust Edition Guide. Це повна книга, яка перелічує відмінності між виданнями та пояснює, як автоматично оновити ваш код до нового видання за допомогою cargo fix.