Екосистема 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 2021. Попередніми редакціями були Rust 2015 та Rust 2018.

    • Редакціям дозволено вносити зворотно-несумісні зміни до мови.

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

    • Щоб уникнути поділу екосистеми, компілятор Rust може змішувати код, написаний для різних редакцій.

    • Варто нагадати, що використання компілятора безпосередньо, а не через cargo, є рідкісним явищем (більшість користувачів ніколи цього не роблять).

    • Варто зазначити, що Cargo сам по собі є надзвичайно потужним і всеосяжним інструментом. Він має багато додаткових функцій, включаючи, але не обмежуючись:

    • Докладніше читайте в офіційній Cargo Book