Mozilla áááąáŹááťááşááž áááşááąáŹááşááŹá¸ááąáŹ Rust 1.95 ááááŻááááşááŹááŹá ááŹá¸ááᯠáá˝ááşáááşááąáŹ áĄááťááŻá¸áĄááźááşááá°ááąáŹ Rust ááąáŹááşááąá¸áážááşá¸á ááśáˇáááŻá¸áá°ááŽáážáŻááźááˇáş ááᯠááŻááşááąáááŻááşááŤááźáŽá ááŹááŹá ááŹá¸áááş áážááşááŹááşááąá¸áááşá¸ááąá¸ááᯠáĄáŹááŻáśá ááŻááşááźáŽá¸ áĄáážááŻááşá áŻááąáŹááşá¸áá°áážááˇáş runtime áááŻáĄááŻáśá¸áááźáŻáᲠááŻááşááąáŹááşááąá ááşáá˝ááş ááŻááşááąáŹááşá ááŹááťáŹá¸ ááźááŻááşáááŻááşáážáŻááźááˇáşááŹá¸á áąáááşáĄáá˝ááş ááááááŹááťáŹá¸ááᯠááśáˇáááŻá¸ááąá¸áááş (runtime áááş á áśá áŹááźááˇáşáááŻááşá áĄááźáąááśáĄá ááťááŻá¸ááźááşá¸áážááˇáş ááźáŻááźááşááááşá¸ááááşá¸áážáŻáááŻáˇ ááťážáąáŹáˇááťááŹá¸áááş)á
Rust áá˛áˇ memory management áááşá¸áááşá¸áá˝áąááᯠpointer manipulation áážáŹ error áá˝áąááᯠáááşáážáŹá¸ááźáŽá¸ free ááŻááşááźáŽá¸ááąáŹááş memory ááᯠaccess ááŻááşááŹá null pointer áá˝áąááᯠdereferencing ááŻááşááŹá buffer overrun ááŻááşáᏠá áá˛áˇ low-level memory management áááą ááąáŤáşááąáŤááşááŹáá˛áˇ ááźáżááŹáá˝áąááᯠááŹáá˝ááşáááŻáˇ ááŽáááŻááşá¸ááŻááşááŹá¸ááŤáááşá áᎠproject á libraries áá˝áąááᯠdistribute ááŻááşáááŻáˇá build áá˝áąááᯠáá˝ááşáá°ááťáąáŹáá˝áąáˇá áąáááŻáˇáá˛áˇ dependencies áá˝áąááᯠmanage ááŻááşáááŻáˇ Cargo package manager ááᯠááŽáá˝ááşááąááŤáááşá crates.io repository ááᯠlibraries áá˝áąááᯠhosting áĄáá˝ááş ááááşá¸ááááşá¸ááŹá¸ááŤáááşá
áááŻá¸ááŹá¸á á áşááąá¸ááźááşá¸á áĄááŹááášááŻáááŻááşáááŻááşáážáŻáááŻááźáąááŹááśááźááşá¸á áĄááŹááášááŻáááşáááşá¸áááŻááźáąááŹááśááźááşá¸ (scopes) áááŻááźáąááŹááśááźááşá¸áážááˇáş ááŻááşááŻááşááąáŹááşááąá ááşáĄáá˝ááşá¸ áááşáááŻááŽáááşááąáŹááşááźááşá¸ááážááşáááşáážáŻááᯠáĄáá˛ááźááşááźááşá¸ááťáŹá¸áážáá áşáááˇáş Memory safety ááᯠRust áá˝ááş ááśáˇáááŻá¸ááąá¸ááŤáááşá Rust áááş ááááşá¸ááźááˇáşááźááˇáşááťážáśáážáŻááťáŹá¸ááᯠáĄááŹáĄáá˝ááşááąá¸áááşá áĄááŻáśá¸áááźáŻáᎠááźáąáŹááşá¸áá˛áááŻááşááąáŹáááşáááŻá¸ááťáŹá¸ááᯠáááźá áşáááąá áááşááŻááşááąáŹááşáááş áááŻáĄááşáááşá á áśáá áşááťá áşáááŻááşáá˝ááş áááŻáááŻááąáŹááşá¸áá˝ááşááąáŹ áĄáážáŹá¸ááťáŹá¸ááᯠáááŻááşáá˝ááşáááşá ááŻáśááąáĄáŹá¸ááźááˇáş áááźáąáŹááşá¸áá˛áááŻááşááąáŹ áááŻá¸ááŹá¸ááťááşááťáŹá¸áážááˇáş ááááşá¸áážááşááťáŹá¸á áááąáŹáááŹá¸ááᯠááťááˇáşááŻáśá¸áááşá ááŻáášáááĄáážáŹá¸ááťáŹá¸ááᯠáĄáááşá¸ááŻáśá¸ááźá áşá áąáááş áááŻááşááŻáśááąáŹáĄááźáááşá áŹáááŻááşááźááşá¸ááᯠááśáˇáááŻá¸ááąá¸ááŤáááşá
áĄááá ááŽáá˝ááşáááşá¸áá áşáážáŻááťáŹá¸-
- "cfg_select!" macro ááᯠáááˇáşáá˝ááşá¸ááŹá¸ááźáŽá¸á áááşá¸ááᯠ"cfg-if" package áĄá áŹá¸ ""match" block ááŻáśá áśááźááˇáş compilation condition ááťáŹá¸á á˝áŹááᯠáááŻááşáá˝ááşáááş áĄááŻáśá¸ááźáŻáááŻááşááŤáááşá cfg_select! { unix => { fn foo() { /* unix */ } } target_pointer_width = "32" => { fn foo() { /* non-unix, 32-bit */ } } _ => { fn foo() { /* not unix and not 32-bit */ } } }
- "match" blocks ááťáŹá¸áĄáá˝ááşá¸ "if let" expression ááťáŹá¸ááᯠáááşáážááşáááŻááşá á˝ááşá¸ááᯠconditional pattern matching áááşááŽá¸áááş áááşááźáááşáĄáąáŹááş ááźáŻááŻááşááŹá¸ááŤáááşá ááááşá "&&" operator ááᯠáĄááŻáśá¸ááźáŻá "let" expression ááťáŹá¸á á˝áŹááᯠáááşáážááşááźááşá¸áĄáá˝ááş ááśáˇáááŻá¸áážáŻááᯠ"if" áážááˇáş "while" blocks ááťáŹá¸áĄáá˝ááş áááşááźáááşáĄáąáŹááş ááźáŻááŻááşááŹá¸ááŤáááşá match value { Some(x) if let Ok(y) = compute(x) => { println!("{}, {}", x, y); } _ => {} }
- PowerPC áážááˇáş PowerPC64 ááááŻááŹááŻáśá áśááťáŹá¸áĄáá˝ááş áááşááźáááşááąáŹ inline assembler ááśáˇáááŻá¸áážáŻá
- API á áĄá
áááşáĄáááŻááşá¸áĄáá
áşááᯠáááşááźáááşááąáŹáĄááťááŻá¸áĄá
áŹá¸áááŻáˇ áá˝ážáąáˇááŹá¸ááźáŽá¸á áááşá¸áááşá¸ááťáŹá¸áážááˇáş á
áááŻááşááášáááŹááťáŹá¸ááᯠáĄááąáŹááşáĄáááşááąáŹáşááŹáá˝ááş áááşááźáááşáĄáąáŹááşááźáŻááŻááşááŹá¸áááş-
- MaybeUninit<[T; N]>: ááž <[MaybeUninit ; N]>
- MaybeUninit<[T; N]>: AsRef<[MaybeUninit ; N]>
- MaybeUninit<[T; N]>: AsRef<[MaybeUninit ]>
- MaybeUninit<[T; N]>: AsMut<[MaybeUninit ; N]>
- MaybeUninit<[T; N]>: AsMut<[MaybeUninit ]>
- [ááźá áşáááŻááşáááş Uninit ; N]: ááž
- áá˛ááş <[T; N]>: AsRef <[áá˛ááş] ; N]>
- áá˛ááş <[T; N]>: AsRef <[áá˛ááş] ]>
- áá˛ááş <[T]>: AsRef <[áá˛ááş] ]>
- bool: TryFrom<{integer}>
- AtomicPtr::áĄááşááááş
- AtomicPtr::try_update
- AtomicBool::áĄááşááááş
- AtomicBool::try_update
- AtomicIn::áĄááşááááş
- AtomicIn::try_update
- AtomicUn::update
- AtomicUn::try_update
- cfg_áá˝áąá¸ááťááşááŤ!
- mod core::range
- core::range::RangeInclusive
- core::range::RangeInclusiveIter
- core::hint::cold_path
- <*const T>::as_ref_unchecked
- <*mut T>::as_ref_unchecked
- <*mut T>::as_mut_unchecked áááŻááşáááąá¸ááŤ
- Vec::push_mut
- Vec::insert_mut
- VecDeque::push_front_mut
- VecDeque::push_back_mut
- VecDeque::insert_mut
- LinkedList::push_front_mut
- LinkedList::push_back_mut
- áĄááźááşáĄáááş::dangling_ptr
- áĄááźááşáĄáááş::áááşááŤááá˛áá˛
- áĄááźááşáĄáááş::áááşááŤááá˛áá˛_ááŻááşáááŻá¸ááŹá¸áááş
- áĄááźááşáĄáááş::extend_packed
- ááŻááşááąáŹááşááťááşááťáŹá¸áá˝ááş "const" áááşášááąáááᯠáĄááŻáśá¸ááźáŻáááş-
- fmt::from_fn
- ControlFlow::is_break
- ControlFlow::áááşáááşááŻááşááąáŹááşáááş
- toolchain á stable ááŹá¸áážááşá¸ááťáŹá¸áá˝ááşá native target platform áááşáážááşááťááşááťáŹá¸ááᯠcompiler áááŻáˇááąá¸áááŻáˇááźááşá¸áĄáá˝ááş ááśáˇáááŻá¸áážáŻááᯠáááşáážáŹá¸áááŻááşááŤááźáŽá
- powerpc64-unknown-linux-muslá aarch64-apple-tvosá aarch64-apple-tvos-simá aarch64-apple-watchosá aarch64-apple-watchos-simá aarch64-apple-visionos áážááˇáş aarch64-apple-visionos-sim áá áşáážááşááááşááąáŹááşá¸ááťáŹá¸ááᯠááśáˇáááŻá¸áážáŻáĄáááˇáş á áááŻáˇ áá˝ážáąáˇááźáąáŹááşá¸ááŹá¸ááźáŽá¸á áááşá¸áá˝ááş build áĄáŹáááśááťááşááŤáááşááąáŹáşáááşá¸ test suite áĄáąáŹááşááźááşááźáąáŹááşá¸ áĄáŹáááśááťááşááážáááŤá
áááŻáˇáĄááźááşá Rust áážááˇáş áááşá ááşááąáŹ áááźáŹááąá¸ááŽá ááźáąááŹáá˛áˇááąáŹ áááąáŹááťááşááťáŹá¸áážááˇáş áá˝á˛ááťáŹá¸ááᯠááŽá¸ááąáŹááşá¸áááŻá¸ááźáááŻááŤáááş-
- Canonical á composite image áá˝áąáááşááŽá¸áááŻáˇáĄáá˝ááş libraries áĄá
áŻáśááᯠááśáˇáááŻá¸ááąá¸áá˛áˇ Mir 2.26 display server ááᯠááááşáááşáááŻááşááŤáááşá ááŹááŹááťáŹá¸ Wayland protocol ááᯠáĄááźáąááśááźáŽá¸ window manager ááťáŹá¸áážááˇáş display server ááťáŹá¸á ááŻáśáážááşááŻááşááąáŹááşááťááşááťáŹá¸ááᯠááąáŤááşá¸á
ááşááŹá¸ááąáŹ Mir ááᯠMiracle compositing managerá web kiosk shell áá˛áˇáááŻáˇááąáŹ áááąáŹááťááşááťáŹá¸áá˝ááş áĄááŻáśá¸ááźáŻáááşá Ubuntu Frame áážááˇáş Miriway áĄááŻáśá¸ááźáŻáá°áááşáááşá¸ááťááşá
áááŻáá˝ááşáážáááŹáá˛áˇááŹá¸áážááşá¸áĄáá áşáᏠRust áážáŹ components áá˝áą áááşááąáŹááşáááŻááşá á˝ááşá¸ááᯠáááˇáşáá˝ááşá¸ááąá¸ááŹá¸áᏠáááşáážáŹá¸ááŤáááşá Rust áážáŹ áĄááźáŹá¸ input management subsystem áá áşááŻááźá áşáá˛áˇ evdev-rs ááᯠáĄááąáŹááşáĄáááşááąáŹáşááŹá¸ááźáŽá¸ Wayland áĄáá˝ááş Rust-based frontend ááźá áşáá˛áˇ wayland-rs ááᯠá áááşááŻááşááąáŹááşááąááŤááźáŽá Mir áážáŹ Rust áá˛áˇ ááááşáááŻááşáá˛áˇ ááźáąáŹááşá¸áá˛áážáŻáá˝áąáážáŹ Wayland protocols ext_image_copy_capture_v1 áá˛áˇ input-triggers áá˝áąááᯠsupport ááŻááşááŤáááşá
- Rust áá˝ááşááąá¸ááŹá¸ááŹá¸ááźáŽá¸ kernel subsystem ááᯠáĄááŻáśá¸ááźáŻááŹá¸áááˇáş ayaFlow traffic analyzer á áááááŻáśá¸áá˝ááşáážááážáŻááᯠááŻááşááąáááŻááşááŤááźáŽá Linux á á˝ááşá¸ááąáŹááşáááşáĄááąáŤáş áááşááąáŹááşáážáŻ áĄáááşá¸ááŻáśá¸ááźááˇáş áá˝ááşáááşáááşáááşááťáŹá¸ (IPv4/TCP/UDP) áážááˇáş Ethernet frame ááťáŹá¸ááᯠááźáŹá¸ááźááşáááşáĄáá˝ááş eBPFá áááşá¸áááş ááŻááşáážááşááŹá¸ááąáŹ áĄáá˝áŹá¸áĄááŹááᯠáá˝á˛ááźááşá¸á áááşááźáŹáááˇáşáĄá፠TLS SNI áážááˇáş DNS query ááťáŹá¸ááᯠááŻááşáá°ááźááşá¸áá˛áˇáááŻáˇááąáŹ application-layer (L7) protocol ááťáŹá¸ááᯠáááşáážááŻááşá¸á á˝áŹ á á áşááąá¸ááźááşá¸ááᯠááśáˇáááŻá¸ááąá¸áááşá á áá áşáááş DashMap format ááźááˇáş áááşáážáááťáááşáááşáážáŻáĄááźáąáĄááąá áááŹá¸ááᯠááááşá¸ááááşá¸ááŹá¸ááźáŽá¸á SQLite áá˝ááş history ááᯠááááşá¸áááşá¸ááŹá¸ááźáŽá¸á REST API áážáá áşáááˇáş Prometheus áááŻáˇ á áŹáááşá¸áĄááşá¸ááťáŹá¸ááᯠááźááşáááŻáˇáááşá
- std::thread ááŻááşááąáŹááşááťááşááťáŹá¸ááᯠáĄááŻáśá¸ááźáŻá Rust ááŹááŹá ááŹá¸ááźááˇáş multithreaded application ááťáŹá¸ááᯠáááşááŽá¸ááźáŽá¸ GPU áááşáá˝ááş ááŻááşááąáŹááşáááŻááşá á˝ááşá¸ááᯠáĄááąáŹááşáĄáááşááąáŹáşááźáŽá¸ááźá áşáááşá
source: opennet.ru
