Π˜Π·Π»ΠΈΠ·Π°Π½Π΅Ρ‚ΠΎ Π½Π° Rust 1.94. ЕкспСримСнти с Rust Π² ядрото Π½Π° FreeBSD. Π‘Π£Π‘Π” Turso ΠΈ БАПР vcad Π½Π° Rust

ОбявСн Π΅ Ρ€Π΅Π»ΠΈΠ· Π½Π° Π΅Π·ΠΈΠΊΠ° Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅ Rust 1.94, ΠΊΠΎΠΉΡ‚ΠΎ Π΅ основан ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Mozilla, Π½ΠΎ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° сС Ρ€Π°Π·Π²ΠΈΠ²Π° ΠΏΠΎΠ΄ Π΅Π³ΠΈΠ΄Π°Ρ‚Π° Π½Π° нСзависима нСстопанска организация, Rust Foundation. Π•Π·ΠΈΠΊΡŠΡ‚ Π΅ фокусиран Π²ΡŠΡ€Ρ…Ρƒ бСзопасната Ρ€Π°Π±ΠΎΡ‚Π° с ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° ΠΈ ΠΏΡ€Π΅Π΄Π»Π°Π³Π° срСдства Π·Π° постиганС Π½Π° висока паралСлност ΠΏΡ€ΠΈ ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΊΠ°Ρ‚ΠΎ ΡΡŠΡ‰Π΅Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΡŠΠ±ΠΈΡ€Π°Ρ‡ Π½Π° Π±ΠΎΠΊΠ»ΡƒΠΊ ΠΈ 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, Π΅ Π²Π½Π΅Π΄Ρ€ΠΈΠ» Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° създаванС Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ Π½Π° ядрото ΠΈ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΈ Π½Π° устройства Π½Π° Π΅Π·ΠΈΠΊΠ° Rust Π·Π° FreeBSD. Π—Π° тСстванС Π΅ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ 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 Π½Π΅ Π΅ Π½Π°Π»ΠΈΡ‡Π΅Π½; ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½Π΅Ρ‚ΠΎ Π½Π° ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ΠΈΡ инструмСнтарий Π² 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