ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ ΡΠ΅Π»ΠΈΠ· ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Rust 1.95, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ Mozilla, Π½ΠΎ Π½ΡΠ½Π΅ ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΏΠΎΠ΄ ΠΏΠΎΠΊΡΠΎΠ²ΠΈΡΠ΅Π»ΡΡΡΠ²ΠΎΠΌ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΠΉ Π½Π΅ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΎΠΉ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ Rust Foundation. Π―Π·ΡΠΊ ΡΡΠΎΠΊΡΡΠΈΡΠΎΠ²Π°Π½ Π½Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΏΠ°ΠΌΡΡΡΡ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ΅Π΄ΡΡΠ²Π° Π΄Π»Ρ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°Π΄Π°Π½ΠΈΠΉ, ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΎΠ±Ρ ΠΎΠ΄ΡΡΡ Π±Π΅Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ±ΠΎΡΡΠΈΠΊΠ° ΠΌΡΡΠΎΡΠ° ΠΈ runtime (runtime ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΊ Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ).
ΠΠ΅ΡΠΎΠ΄Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΠ°ΠΌΡΡΡΡ Π² Rust Π½Π°ΡΠ΅Π»Π΅Π½Ρ Π½Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΏΡΠΈ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΡΠΌΠΈ ΠΈ Π·Π°ΡΠΈΡΡ ΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡΠΈΡ ΠΈΠ·-Π·Π° Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΠ°ΠΌΡΡΡΡ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΠΎΡΠ»Π΅ Π΅Ρ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΡ, ΡΠ°Π·ΡΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ Π½ΡΠ»Π΅Π²ΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ, Π²ΡΡ ΠΎΠ΄ Π·Π° Π³ΡΠ°Π½ΠΈΡΡ Π±ΡΡΠ΅ΡΠ° ΠΈ Ρ.ΠΏ. ΠΠ»Ρ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ±ΠΎΡΠΊΠΈ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠΌΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΡΡΡ ΠΏΠ°ΠΊΠ΅ΡΠ½ΡΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ Cargo. ΠΠ»Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ crates.io.
ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ° Ρ ΠΏΠ°ΠΌΡΡΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅ΡΡΡ Π² Rust Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΡΠ΅ΡΠ΅Π· ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΡΡΡΠ»ΠΎΠΊ, ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ Π²Π»Π°Π΄Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ, ΡΡΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΆΠΈΠ·Π½ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² (ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ) ΠΈ ΠΎΡΠ΅Π½ΠΊΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΠΈ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΏΠ°ΠΌΡΡΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°. Rust ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ΅Π΄ΡΡΠ²Π° Π΄Π»Ρ Π·Π°ΡΠΈΡΡ ΠΎΡ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ, ΡΡΠ΅Π±ΡΠ΅Ρ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΏΠ΅ΡΠ΅Π΄ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, Π»ΡΡΡΠ΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠΈ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΡΡΠΈ (immutable) ΡΡΡΠ»ΠΎΠΊ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΡΠΈΠ»ΡΠ½ΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ Π΄Π»Ρ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ Π½ΠΎΠ²ΡΠ΅ΡΡΠ²Π°:
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ ΠΌΠ°ΠΊΡΠΎΡ Β«cfg_select!Β», ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π²ΠΌΠ΅ΡΡΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ° Β«cfg-ifΒ» Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΡΠ»ΠΎΠ²ΠΈΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π² ΡΡΠΈΠ»Π΅ Π±Π»ΠΎΠΊΠ° Β«matchΒ», Π±Π΅Π· ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ΅ΠΏΠΎΡΠΊΠΈ ΡΡΠ»ΠΎΠ²Π½ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠ΅ΠΉ Β«#[cfg]Β». cfg_select! { unix => { fn foo() { /* unix */ } } target_pointer_width = Β«32Β» => { fn foo() { /* Π½Π΅-unix, 32-bit */ } } _ => { fn foo() { /* Π½Π΅ unix ΠΈ Π½Π΅ 32-bit */ } } }
- Π‘ΡΠ°Π±ΠΈΠ»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΊΠ°Π·Π°Π½ΠΈΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Β«if letΒ» Π²Π½ΡΡΡΠΈ Π±Π»ΠΎΠΊΠΎΠ² Β«matchΒ» Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΠ»ΠΎΠ²Π½ΡΡ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠΉ ΠΏΠΎ ΡΠ°Π±Π»ΠΎΠ½Ρ. Π Π°Π½Π΅Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΊΠ°Π·Π°Π½ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Β«letΒ» Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° Β«&&Β» Π±ΡΠ»Π° ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π° Π΄Π»Ρ Π±Π»ΠΎΠΊΠΎΠ² Β«ifΒ» ΠΈ Β«whileΒ». match value { Some(x) if let Ok(y) = compute(x) => { println!(Β«{}, {}Β», x, y); } _ => {} }
- Π‘ΡΠ°Π±ΠΈΠ»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° inline-Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ° Π΄Π»Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡ PowerPC ΠΈ PowerPC64.
- Π ΡΠ°Π·ΡΡΠ΄ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΡ
ΠΏΠ΅ΡΠ΅Π²Π΅Π΄Π΅Π½Π° Π½ΠΎΠ²Π°Ρ ΠΏΠΎΡΡΠΈΡ API, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Ρ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΈΠΏΠ°ΠΆΠ΅ΠΉ:
- MaybeUninit<[T; N]>: From<[MaybeUninit<T>; N]>
- MaybeUninit<[T; N]>: AsRef<[MaybeUninit<T>; N]>
- MaybeUninit<[T; N]>: AsRef<[MaybeUninit<T>]>
- MaybeUninit<[T; N]>: AsMut<[MaybeUninit<T>; N]>
- MaybeUninit<[T; N]>: AsMut<[MaybeUninit<T>]>
- [MaybeUninit<T>; N]: From<MaybeUninit<[T; N]>
- Cell<[T; N]>: AsRef<[Cell<T>; N]>
- Cell<[T; N]>: AsRef<[Cell<T>]>
- Cell<[T]>: AsRef<[Cell<T>]>
- bool: TryFrom<{integer}>
- AtomicPtr::update
- AtomicPtr::try_update
- AtomicBool::update
- AtomicBool::try_update
- AtomicIn::update
- AtomicIn::try_update
- AtomicUn::update
- AtomicUn::try_update
- cfg_select!
- 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
- Layout::dangling_ptr
- Layout::repeat
- Layout::repeat_packed
- Layout::extend_packed
- ΠΡΠΈΠ·Π½Π°ΠΊ Β«constΒ» ΠΏΡΠΈΠΌΠ΅Π½ΡΠ½ Π² ΡΡΠ½ΠΊΡΠΈΡΡ
:
- fmt::from_fn
- ControlFlow::is_break
- ControlFlow::is_continue
- Π ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΡ Π²Π΅ΡΡΠΈΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΡΠ±ΡΠ°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΡΠ΅Π»Π΅Π²ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌ.
- Π¦Π΅Π»Π΅Π²ΡΠ΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ 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 ΠΏΠ΅ΡΠ΅Π²Π΅Π΄Π΅Π½Ρ Π½Π° Π²ΡΠΎΡΠΎΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅Ρ Π³Π°ΡΠ°Π½ΡΠΈΡ ΡΠ±ΠΎΡΠΊΠΈ, Π½ΠΎ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ Π³Π°ΡΠ°Π½ΡΠΈΠΉ ΠΏΡΠΈ ΠΏΡΠΎΡ ΠΎΠΆΠ΄Π΅Π½ΠΈΠΈ ΡΠ΅ΡΡΠΎΠ²ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡΠ°.
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ Π½Π΅Π΄Π°Π²Π½ΠΎ Π°Π½ΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΡ ΠΈ ΡΠΎΠ±ΡΡΠΈΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Rust:
- ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ Canonical ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠ»Π° Π΄ΠΈΡΠΏΠ»Π΅ΠΉΠ½ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ Mir 2.26, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΠΉ Π½Π°Π±ΠΎΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠ½ΡΡ
ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² Π½Π° Π±Π°Π·Π΅ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° Wayland ΠΈ Π²ΠΊΠ»ΡΡΠ°ΡΡΠΈΠΉ ΡΠΈΠΏΠΎΠ²ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΠΎΠΊΠΎΠ½Π½ΡΡ
ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠΎΠ² ΠΈ Π΄ΠΈΡΠΏΠ»Π΅ΠΉΠ½ΡΡ
ΡΠ΅ΡΠ²Π΅ΡΠΎΠ². Mir Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½ Π² ΡΠ°ΠΊΠΈΡ
ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ
, ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠ½ΡΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ Miracle, ΠΎΠ±ΠΎΠ»ΠΎΡΠΊΠ° Π΄Π»Ρ ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ-ΠΊΠΈΠΎΡΠΊΠΎΠ² Ubuntu Frame ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ Miriway.
ΠΠΎΠ²ΡΠΉ Π²ΡΠΏΡΡΠΊ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΡΠ΅Π»Π΅Π½ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π½Π° ΡΠ·ΡΠΊΠ΅ Rust. ΠΠ° Rust ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½Π°Ρ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²Π²ΠΎΠ΄ΠΎΠΌ evdev-rs ΠΈ Π½Π°ΡΠ°ΡΠ° ΡΠ°Π±ΠΎΡΠ° Π½Π°Π΄ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΌ Π½Π° Rust ΡΡΠΎΠ½ΡΡΠ½Π΄ΠΎΠΌ wayland-rs Π΄Π»Ρ Wayland. ΠΠ· Π½Π΅ ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ Rust ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Mir ΠΎΡΠΌΠ΅ΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Wayland-ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ² ext_image_copy_capture_v1 ΠΈ input-triggers.
- ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ΅Π»ΠΈΠ· Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠ° ΡΡΠ°ΡΠΈΠΊΠ° ayaFlow, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ Π½Π° Rust ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ΅Π³ΠΎ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ΄ΡΠ° Linux eBPF Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΠ° ΡΠ΅ΡΠ΅Π²ΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² (IPv4/TCP/UDP) ΠΈ ΠΊΠ°Π΄ΡΠΎΠ² Ethernet Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ Π²Π»ΠΈΡΠ½ΠΈΠ΅ΠΌ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π³Π»ΡΠ±ΠΎΠΊΠΎΠ΅ ΠΈΠ½ΡΠΏΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ² ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ (L7), Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ TLS SNI ΠΈ DNS-Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΏΡΠΈ Π°Π½Π°Π»ΠΈΠ·Π΅ ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΡΠ°ΡΠΈΠΊΠ°. Π‘ΠΈΡΡΠ΅ΠΌΠ° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡΡ Ρ ΡΠ΅ΠΊΡΡΠΈΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ DashMap, ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈΡΡΠΎΡΠΈΠΈ Π² SQLite ΠΈ ΠΎΡΠ΄Π°ΡΡ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ ΡΠ΅ΡΠ΅Π· REST API Π΄Π»Ρ Prometheus.
- Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° ΡΠ·ΡΠΊΠ΅ Rust, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ std::thread ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ GPU.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
