ИздадСн Π΅ Rust 1.94. ЕкспСримСнти с Rust Π² ядрото Π½Π° FreeBSD. Π‘Π£Π‘Π” Turso ΠΈ БАПР vcad Π½Π° Rust

ОбявСн Π΅ Ρ€Π΅Π»ΠΈΠ· Π½Π° Π΅Π·ΠΈΠΊΠ° Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ Rust 1.94, основан ΠΏΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΎ ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Mozilla, Π½ΠΎ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° сС Ρ€Π°Π·Π²ΠΈΠ²Π° ΠΏΠΎΠ΄ Π΅Π³ΠΈΠ΄Π°Ρ‚Π° Π½Π° нСзависима нСправитСлствСна организация Rust Foundation. Π•Π·ΠΈΠΊΡŠΡ‚ фокусира Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅Ρ‚ΠΎ си Π²ΡŠΡ€Ρ…Ρƒ бСзопасната Ρ€Π°Π±ΠΎΡ‚Π° с ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° ΠΈ ΠΏΡ€Π΅Π΄Π»Π°Π³Π° срСдства Π·Π° постиганС Π½Π° висока стСпСн Π½Π° ΠΏΠ°Ρ€Π°Π»Π΅Π»ΠΈΠ·ΡŠΠΌ ΠΏΡ€ΠΈ ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π·Π°Π΄Π°Ρ‡ΠΈ, Π±Π΅Π· Π΄Π° изисква ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° garbage collector ΠΈ runtime (runtime сС свСТда Π΄ΠΎ основна инициализация ΠΈ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° стандартната Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°).

ΠœΠ΅Ρ‚ΠΎΠ΄ΠΈΡ‚Π΅ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° Π² Rust са насочСни към прСдотвратяванС Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΏΡ€ΠΈ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ ΠΈ Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ, ΠΏΡ€ΠΎΠΈΠ·Ρ‚ΠΈΡ‡Π°Ρ‰ΠΈ ΠΎΡ‚ нискоуровнСва Ρ€Π°Π±ΠΎΡ‚Π° с ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°, ΠΊΠ°Ρ‚ΠΎ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ освобоТдавано пространство, Ρ€Π°Π·ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π΅ Π½Π° Π½ΡƒΠ»Π΅Π²ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ, ΠΈΠ·Π»ΠΈΠ·Π°Π½Π΅ извън Π³Ρ€Π°Π½ΠΈΡ†ΠΈΡ‚Π΅ Π½Π° Π±ΡƒΡ„Π΅Ρ€Π° ΠΈ Π΄Ρ€. Π—Π° разпространСниС Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, осигуряванС Π½Π° построяванС ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° зависимости, ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΡŠΡ‚ Ρ€Π°Π·Π²ΠΈΠ²Π° пакСтния ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡŠΡ€ Cargo. ΠŸΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° сС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π·Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π½Π° crates.io.

БСзопасната Ρ€Π°Π±ΠΎΡ‚Π° с ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° Π² Rust сС осигурява ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° компилацията Ρ‡Ρ€Π΅Π· ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Ρ€Π΅Ρ„Π΅Ρ€Π΅Π½Ρ‚ΠΈΡ‚Π΅, прослСдяванС Π½Π° ΠΏΡ€ΠΈΡ‚Π΅ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΎΠ±Π΅ΠΊΡ‚ΠΈ, Π²Π·Π΅ΠΌΠ°Π½Π΅ ΠΏΠΎΠ΄ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π½Π° ΠΆΠΈΠ²ΠΎΡ‚ Π½Π° ΠΎΠ±Π΅ΠΊΡ‚ΠΈΡ‚Π΅ (област Π½Π° видимост) ΠΈ ΠΎΡ†Π΅Π½ΠΊΠ° Π½Π° корСктността Π½Π° Π΄ΠΎΡΡ‚ΡŠΠΏΠ° Π΄ΠΎ ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠ΄Π°. Rust ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° прСдоставя срСдства Π·Π° Π·Π°Ρ‰ΠΈΡ‚Π° срСщу ΠΏΡ€Π΅ΠΏΡŠΠ»Π²Π°Π½Π΅ Π½Π° Ρ†Π΅Π»ΠΈ числа, изисква Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½Π° инициализация Π½Π° стойноститС Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡ‚Π΅ ΠΏΡ€Π΅Π΄ΠΈ тяхната ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π°, ΠΏΠΎ-Π΄ΠΎΠ±Ρ€Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° Π³Ρ€Π΅ΡˆΠΊΠΈΡ‚Π΅ Π² стандартната Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, ΠΏΡ€ΠΈΠ»Π°Π³Π° концСпцията Π·Π° нСизмСняСмост (immutable) Π½Π° Ρ€Π΅Ρ„Π΅Ρ€Π΅Π½Ρ‚ΠΈΡ‚Π΅ ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡ‚Π΅ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ ΠΈ ΠΏΡ€Π΅Π΄Π»Π°Π³Π° силна статична типизация Π·Π° ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° логичСскитС Π³Ρ€Π΅ΡˆΠΊΠΈ.

Основни нововъвСдСния:

  • Π’ Ρ‚ΠΈΠΏ slice Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄ΡŠΡ‚ array_windows, ΠΊΠΎΠΉΡ‚ΠΎ създава ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ Π·Π° ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅ ΠΏΡ€Π΅Π· срСзовС (slice) с фиксиран Ρ€Π°Π·ΠΌΠ΅Ρ€, ΠΊΠΎΠΈΡ‚ΠΎ сС прСмСстят с Π΅Π΄ΠΈΠ½ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ Π½Π° всСки Ρ…ΠΎΠ΄. Π—Π° Ρ€Π°Π·Π»ΠΈΠΊΠ° ΠΎΡ‚ ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½ΠΈΡ Π½Π°Π»ΠΈΡ‡Π΅Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄ windows, ΠΌΠ΅Ρ‚ΠΎΠ΄ΡŠΡ‚ array_windows ΠΎΠΏΠ΅Ρ€ΠΈΡ€Π° с постоянСн Ρ€Π°Π·ΠΌΠ΅Ρ€ Π½Π° ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ†Π° ΠΈ ΠΏΡ€ΠΈ всяка итСрация Π²Ρ€ΡŠΡ‰Π° ΠΏΡ€Π΅ΠΏΡ€Π°Ρ‚ΠΊΠ° към масив с фиксиран Ρ€Π°Π·ΠΌΠ΅Ρ€ (&[T; N]) вмСсто срСз с Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Ρ€Π°Π·ΠΌΠ΅Ρ€ (&[T]). Въй ΠΊΠ°Ρ‚ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ΡŠΡ‚ Π½Π° масива Π΅ извСстСн Π½Π° компилятора, Π·Π° подобряванС Π½Π° производитСлността ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·Π±Π΅Π³Π½Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°Ρ‚Π° Π½Π° Π³Ρ€Π°Π½ΠΈΡ†ΠΈΡ‚Π΅ Π½Π° масива Π½Π° всяка ΡΡ‚ΡŠΠΏΠΊΠ° Π½Π° итСрацията. let slice = [0, 1, 2, 3]; let mut iter = slice.array_windows(); assert_eq!(iter.next().unwrap(), &[0, 1]); assert_eq!(iter.next().unwrap(), &[1, 2]); assert_eq!(iter.next().unwrap(), &[2, 3]); assert!(iter.next().is_none());
  • Π’ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° пакСтния ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡŠΡ€ Cargo (.cargo/config.toml) Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π°Ρ‚Π° β€žincludeβ€œ, която позволява Π½Π° място Π΄Π° вмъква ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅. include = [ "frodo.toml", "samwise.toml", ] include = [ { path = "required.toml" }, { path = "optional.toml", optional = true }, ]
  • Π’ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅ с манифСсти ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° Π½ΠΎΠ²Π°Ρ‚Π° вСрсия Π½Π° Π΅Π·ΠΈΠΊΠ° Π·Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€Π°Π½Π΅ TOML 1.1, Π² която Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° многострочни Π²Π³Ρ€Π°Π΄Π΅Π½ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ, escape-послСдоватСлности "\xHH" Π·Π° вмъкванС Π½Π° ΡˆΠ΅ΡΡ‚Π½Π°ΠΉΡΠ΅Ρ‚ΠΈΡ‡Π½ΠΈΡ Π²ΠΈΠ΄ Π½Π° Π±Π°ΠΉΡ‚ΠΎΠ²Π΅ ΠΈ "\e" Π·Π° замяна Π½Π° "\u001B", ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° оставянС Π½Π° запСтая Π² края Π½Π° послСдния Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ ΠΈ пропусканС Π½Π° ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° сСкунди Π² стойноститС Π½Π° Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ. serde = { version = "1.0", features = ["derive"] } сСга ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС Π·Π°ΠΌΠ΅Π½Π΅Π½ с serde = { version = "1.0", features = ["derive"], }
  • Нов Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ API Π΅ ΠΏΡ€Π΅Π²Π΅Π΄Π΅Π½ Π² катСгорията стабилни, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ стабилизирани ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° Ρ‚ΠΈΠΏΠ°ΠΆΠΈ:
    • ::array_windows
    • ::element_offset
    • LazyCell::get
    • LazyCell::get_mut
    • LazyCell::force_mut
    • LazyLock::get
    • LazyLock::get_mut
    • LazyLock::force_mut
    • impl TryFrom for usize
    • std::iter::Peekable::next_if_map
    • std::iter::Peekable::next_if_map_mut
    • Π’Π³Ρ€Π°Π΄Π΅Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π° x86 инструкции avx512fp16
    • Π’Π³Ρ€Π°Π΄Π΅Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π° AArch64 инструкции NEON fp16
    • f32::consts::EULER_GAMMA
    • f64::consts::EULER_GAMMA
    • f32::consts::GOLDEN_RATIO
    • f64::consts::GOLDEN_RATIO
  • ΠŸΡ€ΠΈΠ·Π½Π°ΠΊ Β«constΒ» ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅:
    • f32::mul_add
    • f64::mul_add
  • ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° riscv64im-unknown-none-elf Π΅ ΠΏΡ€Π΅Π²Π΅Π΄Π΅Π½Π° Π½Π° Ρ‚Ρ€Π΅Ρ‚ΠΎ Π½ΠΈΠ²ΠΎ Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°. Π’Ρ€Π΅Ρ‚ΠΎΡ‚ΠΎ Π½ΠΈΠ²ΠΎ ΠΎΠ±Ρ…Π²Π°Ρ‰Π° основна ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°, Π½ΠΎ Π±Π΅Π· Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π°Π½ΠΎ тСстванС, ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½Π΅ Π½Π° ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»Π½ΠΈ вСрсии ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΊΠΎΠ΄Π°.

Π”ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΎΡ‚Π±Π΅Π»Π΅ΠΆΠΈ, Ρ‡Π΅ наскоро бяха анонсирани ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ ΠΈ ΡΡŠΠ±ΠΈΡ‚ΠΈΡ, ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с Rust:

  • ΠΡ€Ρ‚ΡŠΠ½ ΠœΡƒΠ½ΡŒΠΎΡ (Ayrton MuΓ±oz), ΠΊΠΎΠΉΡ‚ΠΎ Π² ΠΌΠΈΠ½Π°Π»ΠΎΡ‚ΠΎ Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π» ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Sony PlayStation 1 Π² ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€Π° Rust ΠΈ Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈΠ» ΠΏΠΎ ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° FreeBSD Π·Π° ΠΊΠΎΠΌΠΏΡŽΡ‚Ρ€ΠΈ с Ρ‡ΠΈΠΏΠΎΠ²Π΅ Apple Silicon, Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π» Π·Π° FreeBSD Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° създаванС Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ Π½Π° ядрото ΠΈ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΈ Π½Π° устройства Π½Π° Π΅Π·ΠΈΠΊΠ° Rust. Π—Π° тСстванС Π΅ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ KPI-ΠΎΠ±Π²ΠΈΠ²ΠΊΠΈ (Kernel Programming Interface), ΠΊΠΎΠΈΡ‚ΠΎ позволяват ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠ΄ Π½Π° Rust Π² ядрото Π½Π° FreeBSD, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ създадСни с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Ρ‚Π΅Π·ΠΈ ΠΎΠ±Π²ΠΈΠ²ΠΊΠΈ Π·Π²ΡƒΠΊΠΎΠ² Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ virtio (virtio_snd), HID-Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ DockChannel Π·Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π°Ρ‚Π° Π² M2 MacBook ΠΈ няколко нискоуровнСви Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° Π·Π° подсистСмитС Π½Π° ΠΊΠΎΠΌΠΏΡŽΡ‚Ρ€ΠΈΡ‚Π΅ Mac с Ρ‡ΠΈΠΏΠΎΠ²Π΅ Apple Silicon.

    ΠžΡ‚Π±Π΅Π»ΡΠ·Π²Π° сС, Ρ‡Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° ΠΏΠΎ Rust-ΠΎΠ±Π²ΠΈΠ²ΠΊΠΈΡ‚Π΅ сС ΠΏΡ€ΠΎΠ²Π΅ΠΆΠ΄Π° ΠΎΡ‚ края Π½Π° 2024 Π³ΠΎΠ΄ΠΈΠ½Π°. Π’ ΠΎΠ±Π²ΠΈΠ²ΠΊΠΈΡ‚Π΅ досСга Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° само част ΠΎΡ‚ C-KPI ΠΈ Ρ‚Π΅ сС ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€Π°Ρ‚ ΠΊΠ°Ρ‚ΠΎ нСстабилни, Π½ΠΎ с Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π½ΠΈΠ²ΠΎΡ‚ΠΎ Π½Π° стабилност ΠΏΠ»Π°Π½ΠΈΡ€Π°Ρ‚ Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π°Ρ‚ Π΄ΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ Π½Π° интСрфСйса Π·Π° Π΅Π·ΠΈΠΊΠ° Π‘. ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡΡ‚ Π·Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ virtio_snd Π΅ подходящ Π·Π° Π²ΡŠΠ·ΠΏΡ€ΠΎΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΌΡƒΠ·ΠΈΠΊΠ° Π² QEMU. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π° сС, Ρ‡Π΅ ΠΏΡ€Π΅Π· 2026 Π³ΠΎΠ΄ΠΈΠ½Π° Rust-ΠΎΠ±Π²ΠΈΠ²ΠΊΠΈΡ‚Π΅ Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ стабилизирани, Π·Π° Π΄Π° ΠΌΠΎΠ³Π°Ρ‚ заинтСрСсованитС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ‚ Π΄Π° Π³ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π·Π° писанС Π½Π° ΠΊΠΎΠ΄.

  • Π‘Π΅Π½ΠΈ Π—ΠΈΠ³Π΅Ρ€Ρ‚ (Benny Siegert), ΠΊΠΎΠΉΡ‚ΠΎ участва Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° NetBSD, сС ΠΎΠΏΠΈΡ‚Π° Π΄Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€Π° ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΈΡ‚Π΅, ΠΏΠΎΡ€Π°Π΄ΠΈ ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° Π΅Π·ΠΈΠΊΠ° Rust няма Π΄Π° сС появи Π² ядрото Π½Π° NetBSD: NetBSD ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΈ, Π·Π° ΠΊΠΎΠΈΡ‚ΠΎ Rust Π½Π΅ Π΅ Π½Π°Π»ΠΈΡ‡Π΅Π½; ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½Π΅Ρ‚ΠΎ Π½Π° наличния инструмСнтариум Π½Π° Rust Π² pkgsrc изисква Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΈ усилия ΠΈ Π΅ ΡΠ²ΡŠΡ€Π·Π°Π½ΠΎ само с няколко Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ; ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° Rust Π² ядрото изисква Π²ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€Π° Rust Π² основната систСма; ΠΏΡ€ΠΈ бутстрСпванСто Π½Π° Rust Π² NetBSD сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° стара вСрсия Π½Π° бинарния ΠΏΠ°ΠΊΠ΅Ρ‚, ΠΊΠΎΠ΅Ρ‚ΠΎ Π΅ нСдопустимо Π·Π° самостоятСлни дистрибуции, разпространявани Π² ΠΈΠ·Ρ…ΠΎΠ΄Π΅Π½ ΠΊΠΎΠ΄; Ρ†ΠΈΠΊΠ»ΠΈ Π½Π° Ρ„ΠΎΡ€ΠΌΠΈΡ€Π°Π½Π΅ Π½Π° Ρ€Π΅Π»ΠΈΠ·ΠΈ Π½Π° Rust Π½Π΅ са ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΈ с Ρ†ΠΈΠΊΡŠΠ»Π° Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° NetBSD ΠΈ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° стари ΠΊΠ»ΠΎΠ½ΠΎΠ²Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, всС ΠΎΡ‰Π΅ сС ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° ΠΊΠ»ΠΎΠ½ΡŠΡ‚ NetBSD 9, пуснат ΠΏΡ€Π΅Π· 2020 Π³ΠΎΠ΄ΠΈΠ½Π°, ΠΏΡ€ΠΈ Ρ‚Π΅Π·ΠΈ условия Π±ΠΈΡ…Π° Π±ΠΈΠ»ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ доставкитС ΠΈ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° ΡˆΠ΅ΡΡ‚Π³ΠΎΠ΄ΠΈΡˆΠ΅Π½ ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€ Π½Π° Rust).
  • ΠŸΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½ Π΅ новият Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π½Π° Π²Π³Ρ€Π°Π΄Π΅Π½Π°Ρ‚Π° Π² прилоТСния Π‘Π£Π‘Π” Turso 0.5, написан Π½Π° Π΅Π·ΠΈΠΊΠ° Rust ΠΈ ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌ с SQLite Π½Π° Π½ΠΈΠ²ΠΎ Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚ SQL, Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅ Π½Π° Π‘Π” ΠΈ C API. Π‘Ρ€Π΅Π΄ Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ сС отбСлязва ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡŠΡ‚ CDC (Change data capture) Π·Π° прослСдяванС Π½Π° измСнСния Π² Π‘Π” Π² Ρ€Π΅Π°Π»Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° io_uring Π·Π° асинхронно въвСТданС/ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π² Linux, ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΎ Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅, Π½Π°Π»ΠΈΡ‡ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΈΠ·Ρ€Π°Π·Π° ALTER Π·Π° промяна Π½Π° схСмата Π½Π° Π‘Π”, Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° ΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ€Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π² Π‘Π”, Ρ€Π΅ΠΆΠΈΠΌΡŠΡ‚ Π½Π° ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π°Π»Π½ΠΈ изчислСния, конструкцията "BEGIN CONCURRENT".
  • ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ Π·Π° прСдоставянС Π½Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° стандартната Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Rust Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ, изпълнявани Π½Π° страната Π½Π° GPU.
  • Emuko β€” Π΅ΠΌΡƒΠ»Π°Ρ‚ΠΎΡ€ Π½Π° RISC-V, написан Π½Π° Rust, способСн Π΄Π° Π·Π°Ρ€Π΅ΠΆΠ΄Π° Linux, ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‰ JIT компилация, способСн Π΄Π° Π·Π°ΠΏΠ°Π·Π²Π° ΠΈ Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚Π½ΠΈ снимки Π½Π° ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ.
  • RustConn (flatpak) β€” Π³Ρ€Π°Ρ„ΠΈΡ‡Π΅Π½ интСрфСйс Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° външни ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ Π²Ρ€ΡŠΠ·ΠΊΠΈ с Π΄Ρ€ΡƒΠ³ΠΈ хостовС, ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‰ SSH, RDP, VNC, SPICE, Telnet, Serial, Kubernetes, Zero Trust ΠΈ SFTP. ΠšΠΎΠ΄ΡŠΡ‚ Π΅ написан Π½Π° Rust с ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° GTK4 ΠΈ Wayland.
  • ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π΅Π½Π° Π΅ Π½ΠΎΠ²Π° вСрсия Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° zlib-rs 0.6, отбСлязана ΠΊΠ°Ρ‚ΠΎ ΠΏΡŠΡ€Π²Π° стабилна вСрсия, напълно ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠ° с zlib C API ΠΈ подходяща Π·Π° ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Π° замяна Π½Π° zlib. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΡŠΡ‚ Ρ†Π΅Π»ΠΈ ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π·Π°Ρ‰ΠΈΡ‚Π΅Π½ Π°Π½Π°Π»ΠΎΠ³ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° Π·Π° компрСсия Π½Π° Π΄Π°Π½Π½ΠΈ zlib. Π Π°Π·Π²ΠΈΡ‚ΠΈΠ΅Ρ‚ΠΎ Π΅ насочСно към ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° zlib-ng, ΠΊΠΎΠΉΡ‚ΠΎ Ρ€Π°Π·Π²ΠΈΠ²Π° високопроизводитСлСн Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π½Π° zlib.
  • ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π΅Π½ Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΡŠΡ‚ vcad, Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‰ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‡Π½Π° систСма Π·Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π°Π½ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€Π°Π½Π΅ (БАПР), написана Π½Π° Rust ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€Π°Ρ‰Π° с AI-Π°Π³Π΅Π½Ρ‚ΠΈ Ρ‡Ρ€Π΅Π· ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° MCP. ΠŸΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° 3D ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€Π°Π½Π΅, симулация, Ρ€Π°Π±ΠΎΡ‚Π° с 2D скици, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π½ΠΎ сглобяванС, ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€Π°Π½Π΅ във Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ STEP ΠΈ СкспортиранС във Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ‚Π΅ STL/GLB/STEP/DXF.
  • ΠŸΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½Π° Π΅ систСма Π·Π° Ρ€Π°Π·ΠΏΠΎΠ·Π½Π°Π²Π°Π½Π΅ Π½Π° Ρ€Π΅Ρ‡, написана Π½Π° Rust ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‰Π° AI ΠΌΠΎΠ΄Π΅Π»Π° Mistral Voxtral Mini 4B Realtime ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° Π·Π° машинно ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ Burn. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΡŠΡ‚ Π΅ насочСн към Ρ€Π°Π·ΠΏΠΎΠ·Π½Π°Π²Π°Π½Π΅ Π½Π° Ρ€Π΅Ρ‡ Π² Ρ€Π΅Π°Π»Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅ с Ρ†Π΅Π» Ρ„ΠΎΡ€ΠΌΠΈΡ€Π°Π½Π΅ Π½Π° транскрипция ΠΏΡ€ΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΠΎ ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅.
  • ИздадСн Π΅ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΡƒΠΌΡŠΡ‚ c2rust 0.22, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ Π·Π° транслация Π½Π° C ΠΊΠΎΠ΄ (C99) Π² unsafe прСдставлСниС Π½Π° Rust, Π±Π»ΠΈΠ·ΠΊΠΎ ΠΏΠΎ структура Π΄ΠΎ оригиналния C ΠΊΠΎΠ΄. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΡΡ‚ Ρ€Π°Π±ΠΎΡ‚Π΅Π½ каркас ΠΌΠΎΠΆΠ΅ Π² Π±ΡŠΠ΄Π΅Ρ‰Π΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° постСпСнно ΠΏΡ€Π΅Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΈΠ΄ΠΈΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π΅Π½ Rust ΠΈ избавянС ΠΎΡ‚ unsafe Π±Π»ΠΎΠΊΠΎΠ²Π΅.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster