Унікальний підхід мови програмування Rust забезпечує кращий код із меншою кількістю компромісів, ніж має C, C++, Go та інші мови, якими ви, можливо, користуєтеся. Він також регулярно оновлюється, часто щомісяця. Що нового в оприлюдненій 16 листопада версії Rust 1.74.0, розбирався InfoWorld.
Якщо у вас уже встановлена попередня версія Rust через rustup, то можна отримати доступ до останньої версії за допомогою такої команди:
$ rustup update stable
Нові функції в Rust 1.74.0
Rust 1.74.0 містить менеджер пакунків Cargo з кількома функціями. Rust 1.74.0 пропонує налаштування lint через Cargo. Маніфест Cargo.toml тепер підтримує таблицю [lints] для налаштування рівня звітності (заборонити, скасувати, попередити, дозволити). Завдяки цій можливості немає необхідності встановлювати RUSTFLAGS
( -F
, -D
, -W
, -A
), що вплине на всю збірку, або використовувати атрибути рівня створення, такі як:
#![forbid(unsafe_code)]#![deny(clippy::enum_glob_use)]
Тепер розробники можуть записати ці атрибути в маніфест пакета для обробки Cargo:
[lints.rust]unsafe_code = "forbid" [lints.clippy]enum_glob_use = "deny"
Їх також можна налаштувати в таблиці [workspace.lints]
, а потім подовжити [lints] workspace = true
, як і інші налаштування робочої області. Cargo відстежує зміни цих налаштувань, вирішуючи, які ящики відновити.
Інші можливості, пов’язані з Cargo, надані в Rust 1.74.0, включають постачальників облікових даних і автентифіковані приватні реєстри.
Постачальники облікових даних дають змогу налаштувати спосіб отримання облікових даних Cargo для реєстру. Вбудовані постачальники включені для безпечного секретного сховища, пов’язаного з ОС, у Linux, Windows і macOS.
Спеціальні постачальники можуть бути розроблені для підтримки довільних методів зберігання або генерації маркерів.
Тепер реєстри можуть вимагати автентифікацію для всіх операцій, а не лише для публікації. Це дозволяє приватним реєстрам Cargo забезпечувати більш безпечне розміщення ящиків. Для використання приватних реєстрів потрібна конфігурація постачальника облікових даних.
Rust 1.74.0 виправляє ситуацію з помилками a return type cannot contain a projection or Self
that references lifetimes from a parent scope. Тепер компілятор дає змогу згадувати Self
та пов’язувати типи у непрозорих типах повернення, таких як async fn
та -> impl Trait
.
Rust 1.74.0 стабілізує низку API, таких як core::num::Saturating
, std::io::Error::other
та impl_TryFrom<char> for u16
.
Крім того, випуск підвищує мінімальні вимоги для платформ Apple до macOS 10.12 Sierra, iOS 10 і tvOS 10.
Раніше ми повідомляли, що Microsoft опублікувала на Github код, який дає змогу розробникам кодувати драйвери Windows у Rust.
Підписуйтеся на ProIT у Telegram, щоб не пропустити жодну публікацію!