Методы работы с памятью в Rust избавляют разработчика от ошибок при манипулировании указателями и защищают от проблем, возникающих из-за низкоуровневой работы с памятью, таких как обращение к области памяти после её освобождения, разыменование нулевых указателей, выход за границы буфера и т.п. Для распространения библиотек, обеспечения сборки и управления зависимостями проектом развивается пакетный менеджер Cargo. Для размещения библиотек поддерживается репозиторий crates.io.
Безопасная работа с памятью обеспечивается в Rust во время компиляции через проверку ссылок, отслеживание владения объектами, учёт времени жизни объектов (области видимости) и оценку корректности доступа к памяти во время выполнения кода. Rust также предоставляет средства для защиты от целочисленных переполнений, требует обязательной инициализации значений переменных перед использованием, лучше обрабатывает ошибки в стандартной библиотеке, применяет концепцию неизменяемости (immutable) ссылок и переменных по умолчанию, предлагает сильную статическую типизацию для минимизации логических ошибок.
Основные новшества:
- Добавлен API std::thread::scope, позволяющий создавать потоки в привязке к области видимости (Scoped threads). В отличие от ранее доступных потоков новый API std::thread::scope допускает передачу заимствованных (borrowing) нестатических данных, в то время как потоки, создаваемые при помощи классического API std::thread::spawn, должны были владеть всеми передаваемыми аргументами и не могли получать заимствованные переменные. API std::thread::scope гарантирует, что любые порождённые потоки будут завершены до возвращения данных, обеспечивая должный уровень безопасности для механизма заимствования.
 - Предложены новые типы-обвязки для файловых дескрипторов — BorrowedFd и OwnedFd, обеспечивающие заимствование и владение. Типы помечены при помощи «#[repr(transparent)]», что позволяет напрямую использовать их во внешних Си-привязках с учётом владения.
 - Предоставлена возможность вызова Condvar::new, Mutex::new и RwLock::new в контексте констант для создания глобальных статических значений Mutex, RwLock и Condvar без применения пакетов типа lazy_static.
 - Для функций типа fn foo‹T›(value: T, f: impl Copy) разрешено использование синтаксиса вида «foo::‹u32›(3, 3)», явно указывая тип дженерика.
 - Завершён переход на использование техники NLL (Non-Lexical Lifetimes) для выявления проблем с заимствованием переменных. NLL осуществляет учёт на уровне набора указателей в графе потока выполнения, что позволяет увеличить качество проверки заимствования переменных (borrow checker) и допустить выполнение некоторых видов корректного кода, использование которого ранее приводило к выводу ошибки. Поддержка старого механизма, использовавшего привязку времени жизни на лексическом уровне, теперь полностью удалена из rustc, а использование нового NLL внедрено повсеместно.
 -  В разряд стабильных переведена новая порция API, в том числе стабилизированы методы и реализации типажей:
array::from_fnBox::into_pinBinaryHeap::try_reserveBinaryHeap::try_reserve_exactOsString::try_reserveOsString::try_reserve_exactPathBuf::try_reservePathBuf::try_reserve_exactPath::try_existsRef::filter_mapRefMut::filter_mapNonNull::‹[T]›::lenToOwned::clone_intoIpv6Addr::to_ipv4_mappedunix::io::AsFdunix::io::BorrowedFd‹'fd›unix::io::OwnedFdwindows::io::AsHandlewindows::io::BorrowedHandlewindows::io::OwnedHandlewindows::io::HandleOrInvalidwindows::io::HandleOrNullwindows::io::InvalidHandleErrorwindows::io::NullHandleErrorwindows::io::AsSocketwindows::io::BorrowedSocket‹'handle›windows::io::OwnedSocketthread::scopethread::Scope- 
thread::ScopedJoinHandle 
 -  Признак «const», определяющий возможность использования в любом контексте вместо констант, применён в функциях:
array::from_refslice::from_refintrinsics::copyintrinsics::copy_nonoverlapping‹*const T›::copy_to‹*const T›::copy_to_nonoverlapping‹*mut T›::copy_to‹*mut T›::copy_to_nonoverlapping‹*mut T›::copy_from‹*mut T›::copy_from_nonoverlappingstr::from_utf8Utf8Error::error_lenUtf8Error::valid_up_toCondvar::newMutex::newRwLock::new
 
Дополнительно можно отметить инициативу по использованию языка Rust для написания работающего на уровне ядра Linux драйвера для GPU Apple AGX, используемого  в чипах Apple M1 и M2.
Отмечается, что GPU Apple AGX выполняет прошивку и использует достаточно сложные совместно используемые структуры данных. Реализация управления прошивками и структурами на Rust позволила бы упростить разработку и добиться более высокой безопасности. Рассматриваются два варианта разработки: написание основой части на Си, но использование  компонентов на Rust для взаимодействия с прошивкой и управления  структурами данных  в разделяемой памяти, или написание всего драйвера на Rust и создание Rust-обвязки для подсистемы DRM.
Источник: http://www.opennet.ru/opennews/art.shtml?num=57628
