Rust 1.74 рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рднрд╛рд╖рд╛рдХреЛ рд░рд┐рд▓реАрдЬред RustVMM рдЕрдбрд┐рдЯред рд░рд╕реНрдЯрдорд╛ рдмрд╛рдЗрдиреНрдбрд░ рдкреБрди: рд▓реЗрдЦреНрджреИ

Rust 1.74 рд╕рд╛рдорд╛рдиреНрдп-рдЙрджреНрджреЗрд╢реНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рднрд╛рд╖рд╛рдХреЛ рд░рд┐рд▓реАрдЬ, Mozilla рдкрд░рд┐рдпреЛрдЬрдирд╛ рджреНрд╡рд╛рд░рд╛ рд╕реНрдерд╛рдкрд┐рдд, рддрд░ рдЕрдм рд╕реНрд╡рддрдиреНрддреНрд░ рдЧреИрд░-рд▓рд╛рднрдХрд╛рд░реА рд╕рдВрд╕реНрдерд╛ рд░рд╕реНрдЯ рдлрд╛рдЙрдиреНрдбреЗрд╕рдирдХреЛ рд╕рдВрд░рдХреНрд╖рдгрдорд╛ рд╡рд┐рдХрд╕рд┐рдд рдЧрд░рд┐рдПрдХреЛ рдЫ, рдкреНрд░рдХрд╛рд╢рд┐рдд рдЧрд░рд┐рдПрдХреЛ рдЫред рднрд╛рд╖рд╛рд▓реЗ рдореЗрдореЛрд░реА рд╕реБрд░рдХреНрд╖рд╛рдорд╛ рдлреЛрдХрд╕ рдЧрд░реНрдЫ рд░ рдлреЛрд╣реЛрд░ рд╕рдЩреНрдХрд▓рди рдЧрд░реНрдиреЗ рд░ рд░рдирдЯрд╛рдЗрдордХреЛ рдкреНрд░рдпреЛрдЧрд▓рд╛рдИ рдмреЗрд╡рд╛рд╕реНрддрд╛ рдЧрд░реНрджреИ рдЙрдЪреНрдЪ рдХрд╛рдордХреЛ рд╕рдорд╛рдирд╛рдиреНрддрд░рддрд╛ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреЗ рдорд╛рдзреНрдпрдо рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫ (рд░рдирдЯрд╛рдЗрдорд▓рд╛рдИ рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпрдХреЛ рдЖрдзрд╛рд░рднреВрдд рдкреНрд░рд╛рд░рдореНрдн рд░ рдорд░реНрдорддрдорд╛ рдШрдЯрд╛рдЗрдиреНрдЫ)ред

рд░рд╕реНрдЯрдХреЛ рдореЗрдореЛрд░реА рд╣реНрдпрд╛рдиреНрдбрд▓рд┐рдВрдЧ рд╡рд┐рдзрд┐рд╣рд░реВрд▓реЗ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд▓рд╛рдИ рдкреЛрдЗрдиреНрдЯрд░реНрд╕ рд╣реЗрд░рдлреЗрд░ рдЧрд░реНрджрд╛ рддреНрд░реБрдЯрд┐рд╣рд░реВрдмрд╛рдЯ рдмрдЪрд╛рдЙрдБрдЫ рд░ рдирд┐рдореНрди-рд╕реНрддрд░рдХреЛ рдореЗрдореЛрд░реА рд╣реНрдпрд╛рдиреНрдбрд▓рд┐рдЩрдХрд╛ рдХрд╛рд░рдг рдЙрддреНрдкрдиреНрди рд╣реБрдиреЗ рд╕рдорд╕реНрдпрд╛рд╣рд░реВрдмрд╛рдЯ рдЬреЛрдЧрд╛рдЙрдБрдЫ, рдЬрд╕реНрддреИ рдореЗрдореЛрд░реА рдХреНрд╖реЗрддреНрд░рд▓рд╛рдИ рдЦрд╛рд▓реА рдЧрд░рд┐рд╕рдХреЗрдкрдЫрд┐ рдкрд╣реБрдБрдЪ рдЧрд░реНрдиреЗ, рдирд▓ рдкреЛрдЗрдиреНрдЯрд╣рд░реВ, рдмрдлрд░ рдУрднрд░рд░рдиреНрд╕, рдЗрддреНрдпрд╛рджрд┐ред рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реВ рд╡рд┐рддрд░рдг рдЧрд░реНрди, рдирд┐рд░реНрдорд╛рдгрд╣рд░реВ рдкреНрд░рджрд╛рди рдЧрд░реНрди рд░ рдирд┐рд░реНрднрд░рддрд╛рд╣рд░реВ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдЧрд░реНрди, рдкрд░рд┐рдпреЛрдЬрдирд╛рд▓реЗ рдХрд╛рд░реНрдЧреЛ рдкреНрдпрд╛рдХреЗрдЬ рдкреНрд░рдмрдиреНрдзрдХ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрджрдЫред crates.io рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рд▓рд╛рдЗрдмреНрд░реЗрд░реАрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерд┐рдд рдЫред

рдореЗрдореЛрд░реА рд╕реБрд░рдХреНрд╖рд╛ рд╕рдиреНрджрд░реНрдн рдЬрд╛рдБрдЪ, рд╡рд╕реНрддреБ рд╕реНрд╡рд╛рдорд┐рддреНрд╡рдХреЛ рдЯреНрд░реНрдпрд╛рдХ рд░рд╛рдЦреНрдиреЗ, рд╡рд╕реНрддреБ рдЬреАрд╡рдирдХрд╛рд▓ (рд╕реНрдХреЛрдкрд╣рд░реВ) рдХреЛ рдЯреНрд░реНрдпрд╛рдХ рд░рд╛рдЦреНрдиреЗ, рд░ рдХреЛрдб рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рдХреНрд░рдордорд╛ рдореЗрдореЛрд░реА рдкрд╣реБрдБрдЪрдХреЛ рд╢реБрджреНрдзрддрд╛ рдореВрд▓реНрдпрд╛рдЩреНрдХрди рдЧрд░реЗрд░ рдХрдореНрдкрд╛рдЗрд▓ рд╕рдордпрдорд╛ рд░рд╕реНрдЯрдорд╛ рдкреНрд░рджрд╛рди рдЧрд░рд┐рдиреНрдЫред Rust рд▓реЗ рдкреВрд░реНрдгрд╛рдВрдХ рдУрднрд░рдлреНрд▓реЛрд╣рд░реВ рд╡рд┐рд░реБрджреНрдз рд╕реБрд░рдХреНрд╖рд╛ рдкрдирд┐ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫ, рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБ рдЕрдШрд┐ рдЪрд░ рдорд╛рдирд╣рд░реВрдХреЛ рдЕрдирд┐рд╡рд╛рд░реНрдп рдкреНрд░рд╛рд░рдореНрднрд┐рдХрддрд╛ рдЖрд╡рд╢реНрдпрдХ рдЫ, рддреНрд░реБрдЯрд┐рд╣рд░реВрд▓рд╛рдИ рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпрдорд╛ рд░рд╛рдореНрд░реЛрд╕рдБрдЧ рд╣реНрдпрд╛рдиреНрдбрд▓ рдЧрд░реНрджрдЫ, рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╕рдиреНрджрд░реНрднрд╣рд░реВ рд░ рдЪрд░рд╣рд░реВрдХреЛ рдЕрд╡рдзрд╛рд░рдгрд╛ рд▓рд╛рдЧреВ рдЧрд░реНрджрдЫ, рддрд╛рд░реНрдХрд┐рдХ рддреНрд░реБрдЯрд┐рд╣рд░реВрд▓рд╛рдИ рдХрдо рдЧрд░реНрди рдмрд▓рд┐рдпреЛ рд╕реНрдерд┐рд░ рдЯрд╛рдЗрдкрд┐рдЩ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред

рдореБрдЦреНрдп рдЖрд╡рд┐рд╖реНрдХрд╛рд░рд╣рд░реВ:

  • рдкреНрдпрд╛рдХреЗрдЬ рдкреНрд░рдмрдиреНрдзрдХ рдореНрдпрд╛рдирд┐рдлреЗрд╕реНрдЯрдХреЛ рд╕рд╛рде Cargo.toml рдлрд╛рдЗрд▓ рдорд╛рд░реНрдлрдд lint рдЬрд╛рдБрдЪрд╣рд░реВ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛ рдердкрд┐рдпреЛред рд▓рд┐рдиреНрдЯ рд╕реЗрдЯрд┐рдЩрд╣рд░реВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрди, рдЬрд╕реНрддреИ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕реНрддрд░ (рдирд┐рд╖реЗрдз, рдЕрд╕реНрд╡реАрдХрд╛рд░, рдЪреЗрддрд╛рд╡рдиреА, рдЕрдиреБрдорддрд┐), рдирдпрд╛рдБ рдЦрдгреНрдбрд╣рд░реВ "[lints]" рд░ "[workspace.lints]" рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдЫрдиреН, рдЬреБрди рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдмрд╛рд░реЗ рдирд┐рд░реНрдгрдп рдЧрд░реНрджрд╛ рдзреНрдпрд╛рдирдорд╛ рд▓рд┐рдЗрдиреНрдЫред рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдгред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, тАЬ#![forbid(unsafe_code)]тАЭ рд░ тАЬ#![deny(clippy) рдЬрдореНрдорд╛ рдЧрд░реНрджрд╛ рд╡рд╛ рдердкреНрджрд╛ тАЬ-FтАЭ, тАЬ-DтАЭ, тАЬ-WтАЭ рд░ тАЬ-AтАЭ рдЭрдгреНрдбрд╛рд╣рд░реВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрдиреБрдХреЛ рд╕рдЯреНрдЯрд╛ :" рдХреЛрдбрдХрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реВ) :enum_glob_use)]" рдЕрдм рдХрд╛рд░реНрдЧреЛ рдореНрдпрд╛рдирд┐рдлреЗрд╕реНрдЯрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ: [lints.rust] unsafe_code = "рдирд┐рд╖рд┐рджреНрдз" [lints.clippy] enum_glob_use = "рдЕрд╕реНрд╡реАрдХрд╛рд░ рдЧрд░реНрдиреБрд╣реЛрд╕реН"
  • рдХреНрд░реЗрдЯ рдкреНрдпрд╛рдХреЗрдЬ рдкреНрд░рдмрдиреНрдзрдХрд▓реЗ рднрдгреНрдбрд╛рд░рдорд╛ рдЬрдбрд╛рди рдЧрд░реНрджрд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛ рдердкреЗрдХреЛ рдЫред рдЖрдзрд╛рд░рднреВрдд рд╡рд┐рддрд░рдгрд▓реЗ рд▓рд┐рдирдХреНрд╕ рдХреНрд░реЗрдбреЗрдиреНрд╕рд┐рдпрд▓ рд╕реНрдЯреЛрд░рд╣рд░реВ (libsecret рдорд╛ рдЖрдзрд╛рд░рд┐рдд), macOS (Keychain) рд░ Windows (Windows Credential Manager) рдорд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ рд░рд╛рдЦреНрдирдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫ, рддрд░ рдкреНрд░рдгрд╛рд▓реА рд╕реБрд░реБрдорд╛ рдореЛрдбреНрдпреБрд▓рд░ рдмрдирд╛рдЗрдПрдХреЛ рдерд┐рдпреЛ рд░ рддрдкрд╛рдИрдВрд▓рд╛рдИ рднрдгреНрдбрд╛рд░рдг рд░ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рджрд╛рдпрдХрд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред рдЯреЛрдХрдирд╣рд░реВ рдЙрддреНрдкрдиреНрди рдЧрд░реНрджреИ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, 1Password рдкрд╛рд╕рд╡рд░реНрдб рдкреНрд░рдмрдиреНрдзрдХ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд▓рдЧрдЗрди рддрдпрд╛рд░ рдЧрд░рд┐рдПрдХреЛ рдЫред рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреБрдиреИ рдкрдирд┐ рд╕рдЮреНрдЪрд╛рд▓рдирдХреЛ рд▓рд╛рдЧрд┐ рднрдгреНрдбрд╛рд░рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрди рд╕рдХреНрдЫ, рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВ рдкреНрд░рдХрд╛рд╢рд┐рдд рднрдПрдХреЛ рдкреБрд╖реНрдЯрд┐ рдЧрд░реНрди рдорд╛рддреНрд░ рд╣реЛрдЗрдиред ~/.cargo/config.toml [registry] global-credential-providers = ["cargo:token", "cargo:libsecret"]
  • рдлрд┐рд░реНрддрд╛ рдкреНрд░рдХрд╛рд░ рдЕрдиреБрдорд╛рдирд╣рд░реВ (impl_trait_projections) рдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рд╕реНрдерд┐рд░ рдЧрд░рд┐рдПрдХреЛ рдЫ, Self and T::Assoc рд▓рд╛рдИ "async fn" рд░ "-> impl Trait" рдЬрд╕реНрддрд╛ рд░рд┐рдЯрд░реНрди рдкреНрд░рдХрд╛рд░рд╣рд░реВрдорд╛ рдЙрд▓реНрд▓реЗрдЦ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдБрджреИред рд╕рдВрд░рдЪрдирд╛ рд░реИрдкрд░<'a, T>(&'a T); // рдЕрдкрд╛рд░рджрд░реНрд╢реА рд░рд┐рдЯрд░реНрди рдкреНрд░рдХрд╛рд░рд╣рд░реВ рдЬрд╕рд▓реЗ `Self` рдЙрд▓реНрд▓реЗрдЦ рдЧрд░реНрджрдЫ: impl Wrapper<'_, ()> { async fn async_fn() -> Self { /* тАж */ } fn impl_trait() -> impl Iterator { /* тАж */ } } рд╡рд┐рд╢реЗрд╖рддрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛ <'a> { рдкреНрд░рдХрд╛рд░ Assoc; fn new() -> Self::Assoc; } impl рд╡рд┐рд╢реЗрд╖рддрд╛<'_> рдХреЛ рд▓рд╛рдЧрд┐ () { рдкреНрд░рдХрд╛рд░ Assoc = (); fn new() {} } // рдЕрдкрд╛рд░рджрд░реНрд╢реА рдлрд┐рд░реНрддрд╛ рдкреНрд░рдХрд╛рд░рд╣рд░реВ рдЬрд╕рд▓реЗ рд╕рдореНрдмрдиреНрдзрд┐рдд рдкреНрд░рдХрд╛рд░рд▓рд╛рдИ рдЙрд▓реНрд▓реЗрдЦ рдЧрд░реНрджрдЫ: impl<'a, T: Trait<'a>> wrapper<'a, T> { async fn mk_assoc() -> T::Assoc { /* тАж */ } fn a_few_assocs() -> impl Iterator { /* тАж */ } }
  • рдПрдкреАрдЖрдИ рдХреЛ рдПрдХ рдирдпрд╛рдБ рднрд╛рдЧ рд╕реНрдерд┐рд░ рдХреЛ рд╢реНрд░реЗрдгреА рдорд╛ рд╕рд╛рд░рд┐рдпреЛ, рд╡рд┐рдзрд┐рд╣рд░реБ рд░ рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реБ рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕рд╣рд┐рдд рд╕реНрдерд┐рд░ рдЧрд░рд┐рдПрдХреЛ рдЫ:
  • "const" рд╡рд┐рд╢реЗрд╖рддрд╛, рдЬрд╕рд▓реЗ рд╕реНрдерд┐рд░рддрд╛рдХреЛ рд╕рдЯреНрдЯрд╛ рдХреБрдиреИ рдкрдирд┐ рд╕рдиреНрджрд░реНрднрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рд╕рдореНрднрд╛рд╡рдирд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдЧрд░реНрджрдЫ, рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ:
    • core::mem::transmute_copy
    • str::is_ascii
    • [u8]::is_ascii
    • core::num::Saturating
    • impl from std::process::Stdio рдХреЛ рд▓рд╛рдЧрд┐
    • impl from std::process::Stdio рдХреЛ рд▓рд╛рдЧрд┐
    • impl from std::process::Child{Stdin, Stdout, Stderr} рдХреЛ рд▓рд╛рдЧрд┐
    • impl from std::process::Child{Stdin, Stdout, Stderr} рдХреЛ рд▓рд╛рдЧрд┐
    • std::ffi::OsString::from_encoded_bytes_unchecked
    • std::ffi::OsString::into_encoded_bytes
    • std::ffi::OsStr::from_encoded_bytes_unchecked
    • std::ffi::OsStr::as_encoded_bytes
    • std::io::рддреНрд░реБрдЯрд┐::рдЕрдиреНрдп
    • impl TryFrom u16 рдХреЛ рд▓рд╛рдЧреА
    • impl рдмрд╛рдЯ <&[T; N]> Vec рдХреЛ рд▓рд╛рдЧреА
    • impl рдмрд╛рдЯ <&mut [T; N]> Vec рдХреЛ рд▓рд╛рдЧреА
    • impl рдмрд╛рдЯ <[T; N]> рдЖрд░реНрдХ<[T]> рдХреЛ рд▓рд╛рдЧрд┐
    • impl рдмрд╛рдЯ <[T; N]> Rc<[T]> рдХреЛ рд▓рд╛рдЧрд┐
  • рдХрдореНрдкрд╛рдЗрд▓рд░, рдЯреБрд▓рдХрд┐рдЯ, рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп, рд░ рдЬреЗрдиреЗрд░реЗрдЯ рдЧрд░рд┐рдПрдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╕рди рдПрдХреНрдЬрд┐рдХреНрдпреБрдЯреЗрдмрд▓рд╣рд░реВрд▓реЗ Apple рдкреНрд▓реЗрдЯрдлрд░реНрдорд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ рдЖрд╡рд╢реНрдпрдХрддрд╛рд╣рд░реВ рдмрдврд╛рдПрдХреЛ рдЫ, рдЕрдм рдХрдореНрддрд┐рдорд╛ macOS 10.12 Sierra, iOS 10, рд░ tvOS 10 рд▓рд╛рдИ 2016 рдорд╛ рдЬрд╛рд░реА рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред
  • i686-pc-windows-gnullvm рдкреНрд▓реЗрдЯрдлрд░реНрдордХреЛ рд▓рд╛рдЧрд┐ рддреЗрд╕реНрд░реЛ рд╕реНрддрд░рдХреЛ рд╕рдорд░реНрдерди рд▓рд╛рдЧреВ рдЧрд░рд┐рдПрдХреЛ рдЫред рддреЗрд╕реНрд░реЛ рддрд╣рдорд╛ рдЖрдзрд╛рд░рднреВрдд рд╕рдорд░реНрдерди рд╕рдорд╛рд╡реЗрд╢ рдЫ, рддрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдг рдмрд┐рдирд╛, рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдирд┐рд░реНрдорд╛рдгрд╣рд░реВ рдкреНрд░рдХрд╛рд╢рд┐рдд рдЧрд░реНрдиреЗ, рд╡рд╛ рдХреЛрдб рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ рдХрд┐ рднрдиреЗрд░ рдЬрд╛рдБрдЪ рдирдЧрд░реАред
  • loongarch64-рдЕрдЬреНрдЮрд╛рдд-рдХреБрдиреИ рдкрдирд┐ рд▓рдХреНрд╖рд┐рдд рдкреНрд▓реЗрдЯрдлрд░реНрдордХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдердирдХреЛ рджреЛрд╕реНрд░реЛ рд╕реНрддрд░ рд▓рд╛рдЧреВ рдЧрд░рд┐рдПрдХреЛ рдЫред рд╕рдорд░реНрдердирдХреЛ рджреЛрд╕реНрд░реЛ рд╕реНрддрд░рдорд╛ рдПрдХ рд╕рднрд╛ рдЧреНрдпрд╛рд░реЗрдиреНрдЯреА рд╕рдорд╛рд╡реЗрд╢ рдЫред

рдердк рд░реВрдкрдорд╛, рд░рд╕реНрдЯ рднрд╛рд╖рд╛рд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рджреБрдИ рдШрдЯрдирд╛рд╣рд░реВ рдиреЛрдЯ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ:

  • OSTIF (рдУрдкрди рд╕реЛрд░реНрд╕ рдЯреЗрдХреНрдиреЛрд▓реЛрдЬреА рд╕реБрдзрд╛рд░ рдХреЛрд╖), рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВрдХреЛ рд╕реБрд░рдХреНрд╖рд╛ рд╕реБрджреГрдв рдЧрд░реНрди рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХреЛ, RustVMM рдкрд░рд┐рдпреЛрдЬрдирд╛рдХреЛ рдЕрдбрд┐рдЯрдХреЛ рдирддрд┐рдЬрд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдЧрд░реЗрдХреЛ рдЫ, рдЬрд╕рд▓реЗ рдХрд╛рд░реНрдп-рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣рд╛рдЗрдкрд░рднрд╛рдЗрдЬрд░рд╣рд░реВ рд░ рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рди рдордирд┐рдЯрд░рд╣рд░реВ (VMMs) рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред рдЗрдиреНрдЯреЗрд▓, рдЕрд▓рд┐рдмрд╛рдмрд╛, рдЕрдореЗрдЬрди, рдЧреБрдЧрд▓, рд▓рд┐рдирд╛рд░реЛ рд░ рд░реЗрдб рд╣реНрдпрд╛рдЯ рдЬрд╕реНрддрд╛ рдХрдореНрдкрдиреАрд╣рд░реВрд▓реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛рдХреЛ рд╡рд┐рдХрд╛рд╕рдорд╛ рднрд╛рдЧ рд▓рд┐рдЗрд░рд╣реЗрдХрд╛ рдЫрдиреНред рдЗрдВрдЯреЗрд▓ рдХреНрд▓рд╛рдЙрдб рд╣рд╛рдЗрдкрд░рднрд╛рдЗрдЬрд░ рд░ рдбреНрд░реНрдпрд╛рдЧрдирдмрд▓ рд╣рд╛рдЗрдкрд░рднрд╛рдЗрдЬрд░рд╣рд░реВ RustVMM рдорд╛ рдЖрдзрд╛рд░рд┐рдд рд╡рд┐рдХрд╕рд┐рдд рднрдЗрд░рд╣реЗрдХрд╛ рдЫрдиреНред рдЕрдбрд┐рдЯрд▓реЗ рдХреЛрдб рдЖрдзрд╛рд░рдХреЛ рдЙрдЪреНрдЪ рдЧреБрдгрд╕реНрддрд░ рд░ рдЕрдзрд┐рдХрддрдо рд╕реБрд░рдХреНрд╖рд╛ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреЗ рдЙрджреНрджреЗрд╢реНрдпрд▓реЗ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдорд╛ рдкреНрд░рд╡рд┐рдзрд┐рд╣рд░реВрдХреЛ рдкреНрд░рдпреЛрдЧ рдкреБрд╖реНрдЯрд┐ рдЧрд░реНтАНрдпреЛред рд▓реЗрдЦрд╛рдкрд░реАрдХреНрд╖рдгрдХрд╛ рдХреНрд░рдордорд╛ рд╕реБрд░рдХреНрд╖рд╛рдорд╛ рдкреНрд░рддреНрдпрдХреНрд╖ рдЕрд╕рд░ рдирдЧрд░реНрдиреЗ рем рд╡рдЯрд╛ рд╕рдорд╕реНрдпрд╛ рдкрд╣рд┐рдЪрд╛рди рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ ред
  • рдЧреБрдЧрд▓рд▓реЗ рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдиреЗрд▓ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛ рдореЗрд▓рд┐рдЩ рд╕реВрдЪреАрдорд╛ рд░рд╕реНрдЯ рднрд╛рд╖рд╛рдорд╛ рдкреБрди: рд▓реЗрдЦрд┐рдПрдХреЛ, рдмрд╛рдЗрдиреНрдбрд░ рдЗрдиреНрдЯрд░рдкреНрд░реЛрд╕реЗрд╕ рдХрдореНрдпреБрдирд┐рдХреЗрд╢рди рдореЗрдХрд╛рдирд┐рдЬреНрдордХреЛ рдирдпрд╛рдБ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкреЗрд╢ рдЧрд░реНтАНрдпреЛред рдПрдиреНрдбреНрд░реЛрдЗрдбрдорд╛ рдореЗрдореЛрд░реАрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрджрд╛ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рдкрд╣рд┐рдЪрд╛рди рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛ рдмрдврд╛рдЙрди рд╕реБрд░рдХреНрд╖рд╛рд▓рд╛рдИ рд╕реБрджреГрдв рдЧрд░реНрди, рд╕реБрд░рдХреНрд╖рд┐рдд рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдЩ рдкреНрд░рд╡рд┐рдзрд┐рд╣рд░реВ рдкреНрд░рд╡рд░реНрджреНрдзрди рдЧрд░реНрдиреЗ рдкрд░рд┐рдпреЛрдЬрдирд╛рдХреЛ рдПрдХ рднрд╛рдЧрдХреЛ рд░реВрдкрдорд╛ рдкреБрди: рдХрд╛рд░реНрдп рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ (рдПрдиреНрдбреНрд░реЛрдЗрдбрдорд╛ рдкрд╣рд┐рдЪрд╛рди рдЧрд░рд┐рдПрдХрд╛ рд╕рдмреИ рдЦрддрд░рдирд╛рдХ рдХрдордЬреЛрд░реАрд╣рд░реВрдХреЛ рд▓рдЧрднрдЧ 70% рдореЗрдореЛрд░реАрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрджрд╛ рддреНрд░реБрдЯрд┐рд╣рд░реВрдХреЛ рдХрд╛рд░рдгрд▓реЗ рдЧрд░реНрджрд╛ рд╣реБрдиреНрдЫред )ред рд░рд╕реНрдЯрдорд╛ рдмрд╛рдЗрдиреНрдбрд░рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирд▓реЗ C рднрд╛рд╖рд╛рдорд╛ рдореМрд▓рд┐рдХ рд╕рдВрд╕реНрдХрд░рдгрд╕рдБрдЧ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛рдорд╛ рд╕рдорд╛рдирддрд╛ рд╣рд╛рд╕рд┐рд▓ рдЧрд░реЗрдХреЛ рдЫ, рд╕рдмреИ AOSP (рдПрдиреНрдбреНрд░реЛрдЗрдб рдУрдкрди-рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ) рдкрд░реАрдХреНрд╖рдгрд╣рд░реВ рдкрд╛рд╕ рдЧрд░реНрджрдЫ рд░ рдлрд░реНрдорд╡реЗрдпрд░рдХреЛ рдХрд╛рд░реНрдп рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рджреБрдмреИ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рдХрд╛рд░реНрдпрд╕рдореНрдкрд╛рджрди рд▓рдЧрднрдЧ рд╕рдорд╛рди рд╕реНрддрд░рдорд╛ рдЫ (-рез.репрем% рд░ +рез.рейрео% рднрд┐рддреНрд░рдХреЛ рд╡рд┐рдЪрд▓рди)ред

рд╕реНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди