ΠΠ·ΠΈΠΊΡΡ Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ Rust 1.95, ΠΎΡΠ½ΠΎΠ²Π°Π½ ΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° Mozilla, Π½ΠΎ ΡΠ΅Π³Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½ ΠΏΠΎΠ΄ Π΅Π³ΠΈΠ΄Π°ΡΠ° Π½Π° Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠ°ΡΠ° ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ Ρ Π½Π΅ΡΡΠΎΠΏΠ°Π½ΡΠΊΠ° ΡΠ΅Π» Rust Foundation, Π±Π΅ΡΠ΅ ΠΏΡΡΠ½Π°Ρ. ΠΠ·ΠΈΠΊΡΡ ΡΠ΅ ΡΠΎΠΊΡΡΠΈΡΠ° Π²ΡΡΡ Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡΠ° Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° ΠΏΠΎΡΡΠΈΠ³Π°Π½Π΅ Π½Π° Π²ΠΈΡΠΎΠΊ ΠΏΠ°ΡΠ°Π»Π΅Π»ΠΈΠ·ΡΠΌ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Π·Π°Π΄Π°ΡΠΈ, ΠΊΠ°ΡΠΎ ΡΡΡΠ΅Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠ΅ ΡΠΏΡΠ°Π²Ρ Π±Π΅Π· ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΡΠ±ΠΈΡΠ°Ρ Π½Π° Π±ΠΎΠΊΠ»ΡΠΊ ΠΈ ΡΡΠ΅Π΄Π° Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ (ΡΡΠ΅Π΄Π°ΡΠ° Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ΅ ΡΠ²Π΅ΠΆΠ΄Π° Π΄ΠΎ ΠΎΡΠ½ΠΎΠ²Π½Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°).
ΠΠ΅ΡΠΎΠ΄ΠΈΡΠ΅ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π½Π° Rust ΡΠ° ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈ Π΄Π° Π΅Π»ΠΈΠΌΠΈΠ½ΠΈΡΠ°Ρ Π³ΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ ΠΈ Π΄Π° ΠΏΡΠ΅Π΄ΠΏΠ°Π·Π²Π°Ρ ΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ, ΠΏΡΠΎΠΈΠ·ΡΠΈΡΠ°ΡΠΈ ΠΎΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π½Π° Π½ΠΈΡΠΊΠΎ Π½ΠΈΠ²ΠΎ, ΠΊΠ°ΡΠΎ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΠΏΠ°ΠΌΠ΅Ρ ΡΠ»Π΅Π΄ ΠΊΠ°ΡΠΎ Π΅ Π±ΠΈΠ»Π° ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄Π΅Π½Π°, ΡΠ°Π·ΡΠ΅ΡΠ΅ΡΠ΅Π½ΡΠΈΡΠ°Π½Π΅ Π½Π° Π½ΡΠ»Π΅Π²ΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ, ΠΏΡΠ΅ΠΏΡΠ»Π²Π°Π½Π΅ Π½Π° Π±ΡΡΠ΅ΡΠ° ΠΈ Ρ.Π½. ΠΡΠΎΠ΅ΠΊΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π° ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡΠ° Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ Cargo Π·Π° ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΡΠ»Π΅ΡΠ½ΡΠ²Π°Π½Π΅ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΠΈΡΠ΅ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈΡΠ΅. Π₯ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ΡΠΎ crates.io ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° Π·Π° Ρ ΠΎΡΡΠ²Π°Π½Π΅ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ.
ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡΠ° Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π΅ ΠΎΡΠΈΠ³ΡΡΠ΅Π½Π° Π² Rust ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅ ΡΡΠ΅Π· ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠ΅ΡΠ΅ΡΠ΅Π½ΡΠΈΠΈ, ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π½Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΎΡΡΡΠ° Π½Π° ΠΎΠ±Π΅ΠΊΡΠ°, ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° ΠΆΠΈΠ²ΠΎΡ Π½Π° ΠΎΠ±Π΅ΠΊΡΠ° (ΠΎΠ±Ρ Π²Π°ΡΠΈ) ΠΈ ΠΎΡΠ΅Π½ΠΊΠ° Π½Π° ΠΊΠΎΡΠ΅ΠΊΡΠ½ΠΎΡΡΡΠ° Π½Π° Π΄ΠΎΡΡΡΠΏΠ° Π΄ΠΎ ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ΄Π°. Rust ΡΡΡΠΎ ΠΎΡΠΈΠ³ΡΡΡΠ²Π° Π·Π°ΡΠΈΡΠ° ΡΡΠ΅ΡΡ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½ΠΈ ΠΏΡΠ΅ΠΏΡΠ»Π²Π°Π½ΠΈΡ, ΠΈΠ·ΠΈΡΠΊΠ²Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡΠ΅ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΏΡΠ΅Π΄ΠΈ ΡΠΏΠΎΡΡΠ΅Π±Π°, ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π° Π³ΡΠ΅ΡΠΊΠΈΡΠ΅ ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°, ΠΏΡΠΈΠ»Π°Π³Π° ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡΡΠ° Π·Π° Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΈ ΠΏΡΠ΅ΠΏΡΠ°ΡΠΊΠΈ ΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ΠΈ ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΡΠΈΠ»Π½ΠΎ ΡΡΠ°ΡΠΈΡΠ½ΠΎ Π²ΡΠ²Π΅ΠΆΠ΄Π°Π½Π΅ Π·Π° ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡΠ΅ Π³ΡΠ΅ΡΠΊΠΈ.
ΠΡΠ½ΠΎΠ²Π½ΠΈ ΠΈΠ½ΠΎΠ²Π°ΡΠΈΠΈ:
- ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ ΠΌΠ°ΠΊΡΠΎΡΡΡ "cfg_select!", ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π²ΠΌΠ΅ΡΡΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ° "cfg-if" Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΡΠ»ΠΎΠ²ΠΈΡ Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ Π² ΡΡΠΈΠ»Π° Π½Π° Π±Π»ΠΎΠΊ "match", Π±Π΅Π· Π΄Π° ΡΠ΅ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ° Π²Π΅ΡΠΈΠ³Π° ΠΎΡ ΡΡΠ»ΠΎΠ²Π½ΠΈ ΠΈΠ·ΡΠ°Π·ΠΈ Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡΡΠ° "#[cfg]". cfg_select! { unix => { fn foo() { /* unix */ } } target_pointer_width = "32" => { fn foo() { /* Π½Π΅-unix, 32-Π±ΠΈΡΠΎΠ²Π° */ } } _ => { fn foo() { /* Π½Π΅ Π΅ unix ΠΈ Π½Π΅ Π΅ 32-Π±ΠΈΡΠΎΠ²Π° */ } } }
- ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° Π·Π°Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΈΠ·ΡΠ°Π·ΠΈ "if let" Π² Π±Π»ΠΎΠΊΠΎΠ²Π΅ "match" Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΡΠ»ΠΎΠ²Π½ΠΎ ΡΡΠΏΠΎΡΡΠ°Π²ΡΠ½Π΅ Π½Π° ΡΠ°Π±Π»ΠΎΠ½ΠΈ Π΅ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·ΠΈΡΠ°Π½Π°. ΠΡΠ΅Π΄ΠΈ ΡΠΎΠ²Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π·Π° Π·Π°Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΈΠ·ΡΠ°Π·ΠΈ "let" Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° "&&" Π±Π΅ΡΠ΅ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·ΠΈΡΠ°Π½Π° Π·Π° Π±Π»ΠΎΠΊΠΎΠ²Π΅ "if" ΠΈ "while". match value { Some(x) if let Ok(y) = compute(x) => { println!("{}, {}", x, y); } _ => {} }
- Π‘ΡΠ°Π±ΠΈΠ»ΠΈΠ·ΠΈΡΠ°Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Π²Π³ΡΠ°Π΄Π΅Π½ Π°ΡΠ΅ΠΌΠ±Π»Π΅Ρ Π·Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΈ PowerPC ΠΈ PowerPC64.
- ΠΠΎΠ²Π° ΡΠ°ΡΡ ΠΎΡ API Π΅ ΠΏΡΠ΅ΠΌΠ΅ΡΡΠ΅Π½Π° Π² ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡΡΠ° Π½Π° ΡΡΠ°Π±ΠΈΠ»Π½ΠΈ, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΠΌΠ΅ΡΠΎΠ΄ΠΈΡΠ΅ ΠΈ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈΡΠ΅ Π½Π° Ρ
Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈΡΠ΅ ΡΠ° ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ:
- MaybeUninit<[T; N]>: ΠΡ<[MaybeUninit Π]>
- ΠΠΎΠΆΠ΅ Π±ΠΈUninit<[T; N]>: AsRef<[ΠΠΎΠΆΠ΅ Π±ΠΈUninit Π]>
- ΠΠΎΠΆΠ΅ Π±ΠΈUninit<[T; N]>: AsRef<[ΠΠΎΠΆΠ΅ Π±ΠΈUninit ]>
- ΠΠΎΠΆΠ΅ Π±ΠΈUninit<[T; N]>: AsMut<[ΠΠΎΠΆΠ΅ Π±ΠΈUninit Π]>
- ΠΠΎΠΆΠ΅ Π±ΠΈUninit<[T; N]>: AsMut<[ΠΠΎΠΆΠ΅ Π±ΠΈUninit ]>
- [ΠΠΎΠΆΠ΅ Π±ΠΈUninit ; N]: ΠΡ
- ΠΠ»Π΅ΡΠΊΠ°<[T; N]>: AsRef<[ΠΠ»Π΅ΡΠΊΠ° Π]>
- ΠΠ»Π΅ΡΠΊΠ°<[T; N]>: AsRef<[ΠΠ»Π΅ΡΠΊΠ° ]>
- ΠΠ»Π΅ΡΠΊΠ°<[T]>: AsRef<[ΠΠ»Π΅ΡΠΊΠ° ]>
- bool: TryFrom<{ΡΡΠ»ΠΎ ΡΠΈΡΠ»ΠΎ}>
- AtomicPtr::Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ
- AtomicPtr::try_update
- AtomicBool::Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ
- AtomicBool::try_update
- AtomicIn::Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ
- AtomicIn::try_update
- AtomicUn::Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ
- AtomicUn::try_update
- cfg_select!
- ΠΌΠΎΠ΄ ΡΠ΄ΡΠΎ::Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½
- ΡΠ΄ΡΠΎ::Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½::ΠΠΊΠ»ΡΡΠ²Π°ΡΠΠΈΠ°ΠΏΠ°Π·ΠΎΠ½
- core::range::RangeInclusiveIter
- ΡΠ΄ΡΠΎ::Π½Π°ΠΌΠ΅ΠΊ::ΡΡΡΠ΄Π΅Π½_ΠΏΡΡ
- <*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
- Π‘Π²ΡΡΠ·Π°Π½ ΡΠΏΠΈΡΡΠΊ::push_front_mut
- Π‘Π²ΡΡΠ·Π°Π½ ΡΠΏΠΈΡΡΠΊ::push_back_mut
- ΠΡΠΎΡΠΌΠ»Π΅Π½ΠΈΠ΅::visiaci_ptr
- ΠΡΠΎΡΠΌΠ»Π΅Π½ΠΈΠ΅::ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΠ΅
- ΠΡΠΎΡΠΌΠ»Π΅Π½ΠΈΠ΅::repeat_packed
- ΠΡΠΎΡΠΌΠ»Π΅Π½ΠΈΠ΅::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 ΡΠ° ΠΏΡΠ΅ΠΌΠ΅ΡΡΠ΅Π½ΠΈ ΠΊΡΠΌ Π½ΠΈΠ²ΠΎ Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° 2, ΠΊΠΎΠ΅ΡΠΎ Π²ΠΊΠ»ΡΡΠ²Π° Π³Π°ΡΠ°Π½ΡΠΈΡ Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ, Π½ΠΎ Π½Π΅ ΠΈ Π³Π°ΡΠ°Π½ΡΠΈΡ Π·Π° ΡΡΠΏΠ΅ΡΠ½ΠΎ ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅ Π½Π° ΡΠ΅ΡΡΠΎΠ²ΠΈΡ ΠΏΠ°ΠΊΠ΅Ρ.
ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° Π±ΠΈΡ ΠΌΠ΅ ΠΈΡΠΊΠ°Π»ΠΈ Π΄Π° ΠΏΠΎΠ΄ΡΠ΅ΡΡΠ°Π΅ΠΌ Π½Π°ΡΠΊΠΎΡΠΎ ΠΎΠ±ΡΠ²Π΅Π½ΠΈΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠΈ ΠΈ ΡΡΠ±ΠΈΡΠΈΡ, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ Rust:
- Canonical ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈ Π΄ΠΈΡΠΏΠ»Π΅ΠΉΠ½ΠΈΡ ΡΡΡΠ²ΡΡ Mir 2.26, ΠΊΠΎΠΉΡΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ Π½Π°Π±ΠΎΡ ΠΎΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠ½ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΡΡΡΠ²ΡΡΠΈ ΠΠ°Π·ΠΈΡΠ°Π½ Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° Wayland ΠΈ Π²ΠΊΠ»ΡΡΠ²Π°Ρ ΡΠΈΠΏΠΈΡΠ½Π°ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ Π½Π° ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡΠΈΡΠ΅ Π½Π° ΠΏΡΠΎΠ·ΠΎΡΡΠΈ ΠΈ ΡΡΡΠ²ΡΡΠΈΡΠ΅ Π·Π° ΠΏΠΎΠΊΠ°Π·Π²Π°Π½Π΅, Mir ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² ΠΏΡΠΎΠ΅ΠΊΡΠΈ ΠΊΠ°ΡΠΎ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡΠ° Π·Π° ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΠ½Π³ Miracle, ΡΠ΅Π± ΠΊΠΈΠΎΡΠΊ ΠΎΠ±Π²ΠΈΠ²ΠΊΠ°ΡΠ° Π½Π° Ubuntu Frame ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠ°ΡΠ° ΡΡΠ΅Π΄Π° Miriway.
ΠΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π΅ Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΡΠ΅Π»Π½Π° Ρ Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ΡΠΎ Π½Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ Π² Rust. Π Rust Π΅ Π²Π½Π΅Π΄ΡΠ΅Π½Π° Π°Π»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½Π° ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π²Ρ ΠΎΠ΄Π°, evdev-rs, ΠΈ Π΅ Π·Π°ΠΏΠΎΡΠ½Π°Π»Π° ΡΠ°Π±ΠΎΡΠ° ΠΏΠΎ Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° Rust ΡΡΠΎΠ½ΡΠ΅Π½Π΄, wayland-rs, Π·Π° Wayland. ΠΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π² Mir, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΡΠ° ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ Rust, Π²ΠΊΠ»ΡΡΠ²Π°Ρ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΈΡΠ΅ Π½Π° Wayland ext_image_copy_capture_v1 ΠΈ input-triggers.
- ΠΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½Π° Π΅ ΠΏΡΡΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠ° Π½Π° ΡΡΠ°ΡΠΈΠΊ ayaFlow. Π’ΠΎΠΉ Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° Rust ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° eBPF Π½Π° ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux, Π·Π° Π΄Π° ΠΏΡΠΈΡ Π²Π°ΡΠ° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ (IPv4/TCP/UDP) ΠΈ Ethernet ΡΠ°ΠΌΠΊΠΈ Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΎ Π²ΡΠ·Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π²ΡΡΡ Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°. ΠΠΎΠ΄Π΄ΡΡΠΆΠ° Π·Π°Π΄ΡΠ»Π±ΠΎΡΠ΅Π½Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΈ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ½ΠΎ Π½ΠΈΠ²ΠΎ (L7), ΠΊΠ°ΡΠΎ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠ·Π²Π»ΠΈΡΠ°Π½Π΅ Π½Π° TLS SNI ΠΈ DNS Π·Π°ΡΠ²ΠΊΠΈ ΠΏΡΠΈ Π°Π½Π°Π»ΠΈΠ· Π½Π° ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½ ΡΡΠ°ΡΠΈΠΊ. Π‘ΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΠ°Π±Π»ΠΈΡΠ° Ρ ΡΠ΅ΠΊΡΡΠΈΡΠ΅ ΡΡΡΡΠΎΡΠ½ΠΈΡ Π½Π° Π²ΡΡΠ·ΠΊΠΈΡΠ΅ Π²ΡΠ² ΡΠΎΡΠΌΠ°Ρ DashMap, ΡΡΡ ΡΠ°Π½ΡΠ²Π° ΠΈΡΡΠΎΡΠΈΡ Π² SQLite ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ° ΡΡΠ΅Π· REST API Π½Π° Prometheus.
- Π Π΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΠ½ΠΈΡΠΊΠΎΠ²ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° Π΅Π·ΠΈΠΊΠ° Rust, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ std::thread ΠΈ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Π½ΠΈ ΠΎΡ ΡΡΡΠ°Π½Π° Π½Π° Π³ΡΠ°ΡΠΈΡΠ½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΠΎΡ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
