opublikowany wydanie języka programowania systemu Rdza 1.37, założona przez projekt Mozilla. Język koncentruje się na bezpieczeństwie pamięci, zapewnia automatyczne zarządzanie pamięcią i zapewnia środki do osiągnięcia dużej równoległości zadań bez użycia modułu zbierającego elementy bezużyteczne lub środowiska wykonawczego.
Automatyczne zarządzanie pamięcią Rusta uwalnia programistę od manipulacji wskaźnikami i chroni przed problemami wynikającymi z manipulacji pamięcią na niskim poziomie, takimi jak dostęp do pamięci po zwolnieniu, wyłuskiwanie wskaźników zerowych, przepełnienie bufora i tym podobne. Trwają prace nad menedżerem pakietów, który umożliwi dystrybucję bibliotek, zapewnienie montażu i zarządzanie zależnościami w ramach projektu. Ładunek, co pozwala jednym kliknięciem pobrać biblioteki potrzebne do programu. Repozytorium jest obsługiwane w celu hostowania bibliotek skrzynie.io.
W kompilatorze rustc zabezpieczone wsparcie optymalizacji w oparciu o wyniki profilowania kodu (PGO, Profile-Guided Optimization),
co pozwala wygenerować bardziej optymalny kod na podstawie analizy statystyk zgromadzonych podczas wykonywania programu. Aby wygenerować profil, dostępna jest flaga „-C profile-generate”, a aby użyć profilu podczas montażu - „-C profile-use” (początkowo program jest montowany z pierwszą flagą, biegnie i po utworzeniu profil jest ponownie montowany z drugą flagą);
Podczas wykonywania polecenia „cargo run”, które jest wygodne w użyciu do szybkiego testowania aplikacji konsolowych, dodano możliwość automatycznego wyboru pliku wykonywalnego do uruchomienia, jeśli w pakiecie znajduje się kilka plików wykonywalnych. Domyślny plik do wykonania jest określany za pomocą dyrektywy default-run w sekcji [package] z parametrami pakietu, co pozwala uniknąć jawnego określania nazwy pliku za pomocą flagi „-bin” przy każdym uruchomieniu „cargo run”;
Polecenie „sprzedawca ładunku”, poprzednio dostarczane jako oddzielny pakiet. Komenda umożliwia organizację pracy z lokalną kopią zależności - po wykonaniu „cargo Venture” wszystkie kody źródłowe zależności projektu pobierane są z crates.io do lokalnego katalogu, który można następnie wykorzystać do pracy bez dostępu do skrzynek. io (po wykonaniu polecenia wyświetla się podpowiedź dotycząca zmiany konfiguracji w celu wykorzystania katalogu do kompilacji). Ta funkcja została już wykorzystana do zorganizowania dostarczania kompilatora rustc z pakietem wszystkich zależności w jednym archiwum wraz z wydaniem;
Możliwe jest teraz tworzenie linków do opcji wyliczeniowych za pomocą aliasów typów (na przykład w treści funkcji „fn inkrement_or_zero(x: ByteOption) można określić „ByteOption::None => 0”), wpisać konstrukcje obliczeniowe (‹ MyType‹.. ››::option => N) lub Self accesses (w blokach c &self możesz określić „Self::Quarter => 25”);
Dodano możliwość tworzenia nienazwanych stałych w makrach. Zamiast definiować nazwę elementu w „const”, możesz teraz użyć znaku „_”, aby dynamicznie wybrać niepowtarzalny identyfikator, unikając konfliktów nazw podczas ponownego wywoływania makra;
Dodano możliwość użycia atrybutu „#[repr(align(N))” z wyliczeniami przy użyciu składni podobnej do definiowania struktury AlignN‹T› z wyrównaniem, a następnie przy użyciu AlignN‹MyEnum›;
Nowa część interfejsu API została przeniesiona do kategorii stabilnej, w tym BufReader::buffer, BufWriter::buffer i
Komórka::from_mut,
Komórka::as_slice_of_cells,
DoubleEndedIterator::nth_back,
Opcja::xor
{i,u}{8,16,64,128,size}::reverse_bits, Zawijanie::reverse_bits i
plasterek::kopia_wewnątrz.
Dodatkowo można to zauważyć rozpoczęcie testów projekt Standard asynchroniczny, która oferuje asynchroniczny wariant standardowej biblioteki Rust (port biblioteki std, w której wszystkie interfejsy są oferowane w wersji asynchronicznej i są gotowe do użycia ze składnią async/await).