ΠΠ±ΡΠ²Π΅Π½ Π΅ Π½ΠΎΠ²ΠΈΡ ΡΠ΅Π»ΠΈΠ· Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ½ΠΈΡ Π΅Π·ΠΈΠΊ Rust 1.99, ΠΊΠΎΠΉΡΠΎ ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½ ΠΎΡ Mozilla, Π½ΠΎ ΡΠ΅Π³Π° ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π° ΠΏΠΎΠ΄ Π΅Π³ΠΈΠ΄Π°ΡΠ° Π½Π° Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠ° Π½Π΅ΠΏΡΠ°Π²ΠΈΡΠ΅Π»ΡΡΠ²Π΅Π½Π° ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ, Π½Π°ΡΠ΅ΡΠ΅Π½Π° Rust Foundation. ΠΠ·ΠΈΠΊΡΡ Π΅ Π½Π°ΡΠΎΡΠ΅Π½ ΠΊΡΠΌ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Π°ΡΠ° ΡΠ°Π±ΠΎΡΠ° Ρ ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΠΈ ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΡΡΠ΅Π΄ΡΡΠ²Π° Π·Π° ΠΏΠΎΡΡΠΈΠ³Π°Π½Π΅ Π½Π° Π²ΠΈΡΠΎΠΊΠΎ Π½ΠΈΠ²ΠΎ Π½Π° ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΎΡΡ Π² ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π·Π°Π΄Π°ΡΠΈ, ΠΊΠ°ΡΠΎ Π² ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Garbage Collector ΠΈ runtime (runtime ΡΠ΅ ΡΡΡΡΠΎΠΈ Π² ΠΎΡΠ½ΠΎΠ²Π½Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°).
ΠΠ΅ΡΠΎΠ΄ΠΈΡΠ΅ Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π² Rust ΡΠ° Π½Π°ΡΠΎΡΠ΅Π½ΠΈ ΠΊΡΠΌ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΡΠ²Π°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ ΠΈ Π·Π°ΡΠΈΡΠ° ΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ, ΠΏΡΠΎΠΈΠ·ΡΠΈΡΠ°ΡΠΈ ΠΎΡ Π½ΠΈΡΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²Π° ΡΠ°Π±ΠΎΡΠ° Ρ ΠΏΠ°ΠΌΠ΅ΡΡΠ°, ΠΊΠ°ΡΠΎ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π²Π°Π½ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ, ΡΠ°Π·ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π΅ Π½Π° Π½ΡΠ»Π΅Π²ΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ, ΠΈΠ·Π»ΠΈΠ·Π°Π½Π΅ ΠΈΠ·Π²ΡΠ½ Π³ΡΠ°Π½ΠΈΡΠΈΡΠ΅ Π½Π° Π±ΡΡΠ΅ΡΠ° ΠΈ Π΄Ρ. ΠΠ° ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠΎΡΡΡΠΎΡΠ²Π°Π½Π΅ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, ΠΏΡΠΎΠ΅ΠΊΡΡΡ ΡΠ°Π·Π²ΠΈΠ²Π° ΠΏΠ°ΠΊΠ΅ΡΠ½ΠΈΡ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡ Cargo. ΠΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π·Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π½Π° crates.io.
ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½Π°ΡΠ° ΡΠ°Π±ΠΎΡΠ° Ρ ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π² Rust ΡΠ΅ ΠΎΡΠΈΠ³ΡΡΡΠ²Π° ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡΡΠ° ΡΡΠ΅Π· ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠ΅ΡΠ΅ΡΠ΅Π½ΡΠΈΡΠ΅, ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΈΡΠ΅ΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΎΠ±Π΅ΠΊΡΠΈ, Π²Π·Π΅ΠΌΠ°Π½Π΅ ΠΏΠΎΠ΄ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π½Π° ΠΆΠΈΠ²ΠΎΡ Π½Π° ΠΎΠ±Π΅ΠΊΡΠΈΡΠ΅ (ΠΎΠ±Π»Π°ΡΡ Π½Π° Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡ) ΠΈ ΠΎΡΠ΅Π½ΠΊΠ° Π½Π° ΠΊΠΎΡΠ΅ΠΊΡΠ½ΠΎΡΡΡΠ° Π½Π° Π΄ΠΎΡΡΡΠΏΠ° Π΄ΠΎ ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠ΄Π°. Rust ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΡΡΠ΅Π΄ΡΡΠ²Π° Π·Π° Π·Π°ΡΠΈΡΠ° ΡΡΠ΅ΡΡ ΠΏΡΠ΅ΠΏΡΠ»Π²Π°Π½Π΅ Π½Π° ΡΠ΅Π»ΠΈ ΡΠΈΡΠ»Π°, ΠΈΠ·ΠΈΡΠΊΠ²Π° Π·Π°Π΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π½Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈΡΠ΅ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡΠ΅ ΠΏΡΠ΅Π΄ΠΈ ΡΡΡ Π½Π°ΡΠ° ΡΠΏΠΎΡΡΠ΅Π±Π°, ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π° Π³ΡΠ΅ΡΠΊΠΈΡΠ΅ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°, ΠΏΡΠΈΠ»Π°Π³Π° ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡΡΠ° Π·Π° Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΡΡ (immutable) Π½Π° ΡΠ΅ΡΠ΅ΡΠ΅Π½ΡΠΈΡΠ΅ ΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡΠ΅ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ΠΈ ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΡΠΈΠ»Π½Π° ΡΡΠ°ΡΠΈΡΠ½Π° ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ Π·Π° ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡΠ΅ Π³ΡΠ΅ΡΠΊΠΈ.
ΠΡΠ½ΠΎΠ²Π½ΠΈ Π½ΠΎΠ²ΠΎΠ²ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ:
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π° Rust Ρ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ² Π±ΡΠΎΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΈ (variadic), Π΅ΠΊΡΠΏΠΎΡΡΠΈΡΠ°Π½ΠΈ Π·Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ ΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡΠΈ Π½Π° C (C ABI). ΠΠ°ΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π΅Π½ Π΅Π»Π΅ΠΌΠ΅Π½Ρ Π½Π° ΡΠΏΠΈΡΡΠΊΠ° Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Π² ΡΠ°ΠΊΠΈΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΠΎΡΠΎΡΠ²Π° ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ β...β, ΠΊΠΎΡΡΠΎ ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π° Π² Rust Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΡΠΏΠ΅ΡΠΈΠ°Π»Π΅Π½ ΡΠΈΠΏ VaList, Π΄Π΅ΠΉΡΡΠ²ΡΠ²Π°Ρ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ Π½Π° va_list Π² C. unsafe extern Β«CΒ» fn sum(mut args: ...) -> i32 { let a = unsafe { args.next_arg::() }; let b = unsafe { args.next_arg::() }; a + b } fn foo() -> i32 { unsafe { sum(0i32, 2i32) } }
- Π€ΡΠ½ΠΊΡΠΈΠΈΡΠ΅ Layout::for_value_raw, mem::size_of_val_raw ΠΈ mem::align_of_val_raw ΡΠ° ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΈ ΠΏΠΎΠ΄ΡΠ°Π²Π½ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΡΡΠΎΠ²ΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ (raw pointer), Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΡΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΡΠΈΠΏΠΎΠ²Π΅ Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅Π½ ΡΠ°Π·ΠΌΠ΅Ρ, ΠΊΠ°ΡΠΎ ΡΡΠ΅Π·ΠΎΠ²Π΅, Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡ ΠΎΡ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠ΅ΠΏΡΠ°ΡΠΊΠΈ ΠΊΡΠΌ Π΄Π°Π½Π½ΠΈ.
- Π Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡΠ° Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΎ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠΈΡΠ΅Π»Π½ΠΎ ΠΈΠ·Π±ΡΠ³Π²Π°Π½Π΅ Π½Π° ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ, Π·Π° ΠΊΠΎΡΡΠΎ Π΅ ΠΏΠΎΠ»ΡΡΠ΅Π½Π° ΡΡΠ°ΡΠΈΡΠ½Π° ΠΏΡΠ΅ΠΏΡΠ°ΡΠΊΠ° Ρ Π½Π΅ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π° ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π½ΠΎΡΡ Π½Π° ΠΆΠΈΠ²ΠΎΡΠ° (&βstatic) ΡΡΠ΅Π· ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° Box::leak (round-trip unleaking), ΡΡΠΉ ΠΊΠ°ΡΠΎ ΡΠ°ΠΊΠΎΠ²Π° Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»Π½ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΠΏΠΎΡΠ°Π΄ΠΈ Π½Π΅ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡ Ρ Π±ΡΠ΄Π΅ΡΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΠ° ΠΈ ΡΠ²ΡΡΠ·Π°Π½ΠΈΡΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΈ Π·Π° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ. ΠΠΌΠ΅ΡΡΠΎ Π΄Π° ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π° ΡΡΠ°ΡΠΈΡΠ½Π° ΠΏΡΠ΅ΠΏΡΠ°ΡΠΊΠ° Π·Π° Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΎΡΡΡΠ°, ΡΠ΅ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΡΡΠΎΠ²ΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠ΅Π· ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° Box::into_non_null.
- ΠΠΎΠ² Π½Π°Π±ΠΎΡ ΠΎΡ API Π΅ ΠΏΡΠ΅Π²Π΅Π΄Π΅Π½ Π² ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡΡΠ° ΡΡΠ°Π±ΠΈΠ»Π½ΠΈ, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈ ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π° ΡΠΈΠΏΠ°ΠΆΠΈ:
- IntoIterator Π·Π° Box<[T; N]>
- IntoIterator Π·Π° &Box<[T; N]>
- IntoIterator Π·Π° &mut Box<[T; N]>
- VecDeque::retain_back
- core::ffi::VaList
- Box::into_non_null
- Box::from_non_null
- Vec::into_parts
- Vec::from_parts
- core::mem::size_of_val_raw
- core::mem::align_of_val_raw
- core::alloc::Layout::for_value_raw
- String::from_utf8_lossy_owned
- string::FromUtf8Error::into_utf8_lossy
- FusedIterator Π·Π° StepBy<I>
- std::fs::set_times
- std::fs::set_times_nofollow
- Π ΠΏΠ°ΠΊΠ΅ΡΠ½ΠΈΡ ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡ cargo Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ Π½ΠΎΠ² Π²Π³ΡΠ°Π΄Π΅Π½ ΠΏΡΠΎΡΠΈΠ» βdebugβ, Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ΅Π½ Π½Π° ΠΏΡΠΎΡΠΈΠ»Π° βdevβ (Π² Π±ΡΠ΄Π΅ΡΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈΡΠ΅ Π·Π° ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ΅ Π±ΡΠ΄Π°Ρ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈ). ΠΡΠΈ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π² CI, ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ°Π»Π½Π°ΡΠ° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ Π΅ Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π° ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅.
- Π¦Π΅Π»Π΅Π²Π°ΡΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° riscv64-unknown-linux-musl Π΅ ΠΏΡΠ΅ΠΌΠ΅ΡΡΠ΅Π½Π° Π½Π° Π²ΡΠΎΡΠΎ Π½ΠΈΠ²ΠΎ Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°, ΠΊΠΎΠ΅ΡΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π° Π³Π°ΡΠ°Π½ΡΠΈΡ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅, Π½ΠΎ Π±Π΅Π· Π³Π°ΡΠ°Π½ΡΠΈΠΈ ΠΏΡΠΈ ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅ Π½Π° ΡΠ΅ΡΡΠΎΠ²ΠΈΡ Π½Π°Π±ΠΎΡ.
ΠΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΎΡΠ±Π΅Π»Π΅ΠΆΠΈ, ΡΠ΅ Π½Π°ΡΠΊΠΎΡΠΎ Π±ΡΡ Π° Π°Π½ΠΎΠ½ΡΠΈΡΠ°Π½ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ ΠΈ ΡΡΠ±ΠΈΡΠΈΡ, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ Rust:
- ΠΠΎΠΌΠΏΠ°Π½ΠΈΡΡΠ° Microsoft Π΅ ΠΏΡΠ΅Π²Π΅Π»Π° Rust Π² ΡΠΏΠΈΡΡΠΊΠ° Π½Π° Π΅Π·ΠΈΡΠΈΡΠ΅ Π·Π° ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° ΠΈ ΡΠ΅ ΠΎΡΠΈΠ³ΡΡΠΈ ΠΏΡΠ»Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Π²ΡΠΈΡΠΊΠΈ Π΅ΡΠ°ΠΏΠΈ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡΠ°. ΠΡΠ΅Π΄ΠΈ ΡΠΎΠ²Π°, ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½Π°ΡΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π²ΡΡΡΠ΅ Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡΠ° Π΅ Π±ΠΈΠ»Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΠ½Π° Π·Π° Π΅Π·ΠΈΡΠΈΡΠ΅ C++, C# ΠΈ TypeScript. ΠΡΠ±Π΅Π»ΡΠ·Π²Π° ΡΠ΅, ΡΠ΅ Rust Π²Π΅ΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² Π½Π°Π΄ 100 ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Π½Π° Microsoft. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π°, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ Π½Π° Rust Π²Π΅ΡΠ΅ ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³Π°Ρ Π² ΠΏΡΠΎΠ΄ΡΠΊΡΠΈ ΠΊΠ°ΡΠΎ Microsoft 365 ΠΈ Copilot, Π° Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΠ° MSVC Π΅ ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ ΠΎΡΠ΄Π΅Π»Π΅Π½ Π±Π΅ΠΊΠ΅Π½Π΄ rustc_codegen_utc Π·Π° Rust, ΠΎΡΠ½ΠΎΠ²Π°Π½ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΠ° rustc.
ΠΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΡΠ΅Π» Π½Π° ΠΏΡΠΈΠ»Π°Π³Π°Π½Π΅ΡΠΎ Π½Π° Rust Π² Microsoft Π΅ Π·Π°ΡΠΈΠ»Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ° Π½Π° ΠΊΠΎΠ΄Π°, ΠΊΡΠΈΡΠΈΡΠ΅Π½ ΠΎΡ Π³Π»Π΅Π΄Π½Π° ΡΠΎΡΠΊΠ° Π½Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡΠ°. Π‘ΠΏΠΎΡΠ΅Π΄ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡ Π½Π° Microsoft Azure ΠΎΠΊΠΎΠ»ΠΎ 70% ΠΎΡ Π²ΡΠΈΡΠΊΠΈ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ Π² Windows ΡΠ° ΠΏΡΠΈΡΠΈΠ½Π΅Π½ΠΈ ΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Ρ ΠΏΠ°ΠΌΠ΅ΡΡΠ°, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΈΠ·Π±Π΅Π³Π½Π°ΡΠΈ ΠΏΡΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Rust.
- ΠΠΎΠΌΠΏΠ°Π½ΠΈΡΡΠ° Google ΠΏΡΠ΅ΠΌΠ°Ρ Π½Π° ΡΡΠ°ΡΠ°ΡΠ° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° Π·Π° ΠΌΠ΅ΠΆΠ΄ΡΠΏΡΠΎΡΠ΅ΡΠ½ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Binder ΠΎΡ ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux, Π½Π°ΠΏΠΈΡΠ°Π½Π° Π½Π° Π΅Π·ΠΈΠΊ C, Π² ΠΏΠΎΠ»Π·Π° Π½Π° Π½ΠΎΠ²ΠΈΡ Π΄ΡΠ°ΠΉΠ²Π΅Ρ Binder IPC, ΠΏΡΠ΅Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° Rust. ΠΡΠ±Π΅Π»ΡΠ·Π²Π° ΡΠ΅, ΡΠ΅ Π² ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° 15 Π³ΠΎΠ΄ΠΈΠ½ΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΡΠ°ΡΠΈΡ Π΄ΡΠ°ΠΉΠ²Π΅Ρ Π΅ Π½Π°ΡΡΡΠΏΠ°Π»ΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»Π΅Π½ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈ Π΄ΡΠ»Π³ ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΡΠ»ΠΎΠΆΠ½Π΅Π½ΠΈΡ, ΠΊΠΎΠΈΡΠΎ Π·Π°ΡΡΡΠ΄Π½ΡΠ²Π°Ρ Π° ΠΎΡΠΊΡΠΈΡΠΈΡΡΠ° Π½Π° Π³ΡΠ΅ΡΠΊΠΈ, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° ΠΈ Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ΡΠΎ Π½Π° Π½ΠΎΠ²ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ. ΠΡΠ°ΠΉΠ²Π΅ΡΡΡ Binder IPC Π½Π° Rust Π΅ ΠΏΡΠΈΠ·Π½Π°Ρ Π·Π° ΠΎΡΠ½ΠΎΠ²Π΅Π½ ΠΈ Π²Π΅ΡΠ΅ Π½Π΅ ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Ρ ΠΊΠ°ΡΠΎ Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°.
- ΠΠ±ΡΠ²Π΅Π½ Π΅ ΠΈΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° Arti 2.7.0, ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°ΡΠ° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Tor, Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° Π΅Π·ΠΈΠΊ Rust. ΠΠΎΠ³Π°ΡΠΎ ΠΊΠΎΠ΄ΡΡ Π½Π° Arti Π΄ΠΎΡΡΠΈΠ³Π½Π΅ Π½ΠΈΠ²ΠΎ, ΡΠΏΠΎΡΠΎΠ±Π½ΠΎ Π½Π°ΠΏΡΠ»Π½ΠΎ Π΄Π° Π·Π°ΠΌΠ΅Π½ΠΈ Π²Π΅ΡΡΠΈΡΡΠ° Π½Π° C, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π½Π° Tor ΠΈΠΌΠ°Ρ Π½Π°ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π° ΠΏΡΠΈΠ΄Π°Π΄Π°Ρ Π½Π° Arti ΡΡΠ°ΡΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° Tor ΠΈ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ Π΄Π° ΠΏΡΠ΅ΠΊΡΠ°ΡΡΡ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° C. Π Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π΅ ΠΎΠ±ΠΎΡΠΎΠ±Π΅Π½ΠΎ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΡΠ° Π·Π° ΡΠ΅Π»Π΅ΠΉ ΠΈ ΡΡΡΠ²ΡΡΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ (Directory Authority), ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ ΠΏΠ°ΡΡΠΈΠ½Π³ Π½Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈ, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½Π΅ Π½Π° ΠΎΠ³Π»Π΅Π΄Π°Π»Π½ΠΈ ΡΡΡΠ²ΡΡΠΈ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° DNS ΡΡΠ°ΡΠΈΠΊ. ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° RPC Π·Π° ΠΏΡΠΎΠΌΡΠ½Π° ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ°. Π£ΡΡΡΠ°Π½Π΅Π½ΠΈ ΡΠ° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ - Π½Π° Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΈΡΠ΅ Π½Π° onion ΡΡΠ»ΡΠ³ΠΈ ΡΠ΅ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π° ΡΠΏΠ΅ΡΠ½ΠΎ Π΄Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Ρ ΡΠ²ΠΎΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΈ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
