Rust 1.58 рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдкреНрд░рдХрд╛рд╢рди

Mozilla рдкреНрд░рдХрд▓реНрдкрд╛рджреНрд╡рд╛рд░реЗ рд╕реНрдерд╛рдкрд┐рдд, рдкрд░рдВрддреБ рдЖрддрд╛ рд╕реНрд╡рддрдВрддреНрд░ рдирд╛-рдирдлрд╛ рд╕рдВрд╕реНрдерд╛ Rust Foundation рдЪреНрдпрд╛ рд╕рдВрд░рдХреНрд╖рдгрд╛рдЦрд╛рд▓реА рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓реЗрд▓реА, рд╕рд╛рдорд╛рдиреНрдп-рдЙрджреНрджреЗрд╢реАрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ Rust 1.58 рдЪреЗ рдкреНрд░рдХрд╛рд╢рди рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдгреНрдпрд╛рдд рдЖрд▓реЗ рдЖрд╣реЗ. рднрд╛рд╖рд╛ рдореЗрдорд░реА рд╕реБрд░рдХреНрд╖рд┐рддрддреЗрд╡рд░ рд▓рдХреНрд╖ рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддреЗ, рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рдореЗрдорд░реА рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдкреНрд░рджрд╛рди рдХрд░рддреЗ рдЖрдгрд┐ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╛рд╣рдХ рдХрд┐рдВрд╡рд╛ рд░рдирдЯрд╛рдЗрдо рди рд╡рд╛рдкрд░рддрд╛ рдЙрдЪреНрдЪ рдХрд╛рд░реНрдп рд╕рдорд╛рдВрддрд░рддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдгреНрдпрд╛рдЪреЗ рд╕рд╛рдзрди рдкреНрд░рджрд╛рди рдХрд░рддреЗ (рд░рдирдЯрд╛рдЗрдо рдорд╛рдирдХ рд▓рд╛рдпрдмреНрд░рд░реАрдЪреНрдпрд╛ рдореВрд▓рднреВрдд рдкреНрд░рд╛рд░рдВрдн рдЖрдгрд┐ рджреЗрдЦрднрд╛рд▓ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХрдореА рдХреЗрд▓рд╛ рдЬрд╛рддреЛ).

рд░рд╕реНрдЯрдЪреЗ рдСрдЯреЛрдореЕрдЯрд┐рдХ рдореЗрдорд░реА рдореЕрдиреЗрдЬрдореЗрдВрдЯ рдкреЙрдЗрдВрдЯрд░рдордзреНрдпреЗ рдлреЗрд░рдлрд╛рд░ рдХрд░рддрд╛рдирд╛ рддреНрд░реБрдЯреА рджреВрд░ рдХрд░рддреЗ рдЖрдгрд┐ рд▓реЛ-рд▓реЗрд╡реНрд╣рд▓ рдореЗрдорд░реА рдореЕрдирд┐рдкреНрдпреБрд▓реЗрд╢рдирдореБрд│реЗ рдЙрджреНрднрд╡рдгрд╛рд▒реНрдпрд╛ рд╕рдорд╕реНрдпрд╛рдВрдкрд╛рд╕реВрди рд╕рдВрд░рдХреНрд╖рдг рдХрд░рддреЗ, рдЬрд╕реЗ рдХреА рдореЗрдорд░реА рд░рд┐рдЬрди рдореЛрдХрд│реЗ рдЭрд╛рд▓реНрдпрд╛рдирдВрддрд░ рддреНрдпрд╛рдд рдкреНрд░рд╡реЗрд╢ рдХрд░рдгреЗ, рдирд▓ рдкреЙрдЗрдВрдЯрд░ рдбрд┐рд░реЗрдлрд░рдиреНрд╕, рдмрдлрд░ рдУрд╡реНрд╣рд░рд░рдиреНрд╕ рдЗ. рд▓рд╛рдпрдмреНрд░рд░реА рд╡рд┐рддрд░реАрдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЕрд╕реЗрдВрдмрд▓реА рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рдЕрд╡рд▓рдВрдмрд┐рддреНрд╡ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдкреНрд░рдХрд▓реНрдк рдХрд╛рд░реНрдЧреЛ рдкреЕрдХреЗрдЬ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдд рдЖрд╣реЗ. crates.io рд░реЗрдкреЙрдЬрд┐рдЯрд░реА рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рд▓рд╛рдпрдмреНрд░рд░реАрд╕рд╛рдареА рд╕рдорд░реНрдерд┐рдд рдЖрд╣реЗ.

рдореБрдЦреНрдп рдирд╡рдХрд▓реНрдкрдирд╛:

  • рд▓рд╛рдЗрди рдлреЙрд░рдореЕрдЯрд┐рдВрдЧ рдмреНрд▓реЙрдХреНрд╕рдордзреНрдпреЗ, рд╕рдВрдЦреНрдпрд╛ рдЖрдгрд┐ рдирд╛рд╡рд╛рдиреБрд╕рд╛рд░ рдУрд│реАрдирдВрддрд░ рд╕реНрдкрд╖реНрдЯрдкрдгреЗ рд╕реВрдЪреАрдмрджреНрдз рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕рд▓рд╛ рдмрджрд▓рдгреНрдпрд╛рдЪреА рдкреВрд░реНрд╡реА рдЙрдкрд▓рдмреНрдз рдХреНрд╖рдорддрд╛ рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдУрд│реАрдд тАЬ{identifier}тАЭ рд╣рд╛ рд╢рдмреНрдж рдЬреЛрдбреВрди рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рдЕрднрд┐рдЬреНрдЮрд╛рдкрдХ рдмрджрд▓рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ рд▓рд╛рдЧреВ рдХреЗрд▓реА рдЬрд╛рддреЗ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде: // рдкреВрд░реНрд╡реА рд╕рдорд░реНрдерд┐рдд рдмрд╛рдВрдзрдХрд╛рдореЗ: println!("Hello, {}!", get_person()); println!("рд╣реЕрд▓реЛ, {0}!", get_person()); println!("Hello, {person}!", person = get_person()); // рдЖрддрд╛ рддреБрдореНрд╣реА let person = get_person(); println!("рд╣реЕрд▓реЛ, {рд╡реНрдпрдХреНрддреА}!");

    рдЖрдпрдбреЗрдВрдЯрд┐рдлрд╛рдпрд░ рдереЗрдЯ рд╕реНрд╡рд░реВрдкрди рдкрд░реНрдпрд╛рдпрд╛рдВрдордзреНрдпреЗ рджреЗрдЦреАрд▓ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд. let (рд░реБрдВрджреА, рд╕реБрд╕реНрдкрд╖реНрдЯрддрд╛) = get_format(); get_scores() { println!("{name}: {score:width$.precision$}") рдордзреНрдпреЗ (рдирд╛рд╡, рд╕реНрдХреЛрдЕрд░) рд╕рд╛рдареА; }

    рдирд╡реАрди рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рд╕рд░реНрд╡ рдореЕрдХреНрд░реЛрдордзреНрдпреЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ рдЬреЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдлреЙрд░рдореЕрдЯ рд╡реНрдпрд╛рдЦреНрдпреЗрд▓рд╛ рд╕рдорд░реНрдерди рджреЗрддрд╛рдд, "рдореЕрдХреНрд░реЛ!" рд╡рдЧрд│рддрд╛. рд░рд╕реНрдЯ рднрд╛рд╖реЗрдЪреНрдпрд╛ 2015 рдЖрдгрд┐ 2018 рдЖрд╡реГрддреНрддреНрдпрд╛рдВрдордзреНрдпреЗ, рдЬреНрдпрд╛рдордзреНрдпреЗ рдкреЕрдирд┐рдХ!("{ident}") рдПрдХ рдирд┐рдпрдорд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рдорд╛рдирд▓реА рдЬрд╛рддреЗ (рд░рд╕реНрдЯ 2021 рдордзреНрдпреЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХрд╛рд░реНрдп рдХрд░рддреЗ).

  • рд╡рд┐рдВрдбреЛрдЬ рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╡рд░реАрд▓ std::process::рдХрдорд╛рдВрдб рд╕реНрдЯреНрд░рдХреНрдЪрд░рдЪреЗ рд╡рд░реНрддрди рдмрджрд▓рд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ рдЬреЗрдгреЗрдХрд░реБрди рдХрдорд╛рдВрдб рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рддрд╛рдирд╛, рд╕реБрд░рдХреНрд╖реЗрдЪреНрдпрд╛ рдХрд╛рд░рдгрд╛рд╕реНрддрд╡, рддреЗ рдпрд╛рдкреБрдвреЗ рдЪрд╛рд▓реВ рдирд┐рд░реНрджреЗрд╢рд┐рдХреЗрдд рдПрдХреНрдЭрд┐рдХреНрдпреБрдЯреЗрдмрд▓ рдлрд╛рдЗрд▓реНрд╕ рд╢реЛрдзрдд рдирд╛рд╣реА. рд╡рд░реНрддрдорд╛рди рдбрд┐рд░реЗрдХреНрдЯрд░реА рд╡рдЧрд│рдгреНрдпрд╛рдд рдЖрд▓реА рдЖрд╣реЗ рдХрд╛рд░рдг рдЬрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдореНрд╕ рдЕрд╡рд┐рд╢реНрд╡рд╛рд╕реВ рдбрд┐рд░реЗрдХреНрдЯрд░реАрдордзреНрдпреЗ (CVE-2021-3013) рдЪрд╛рд▓рд╡рд▓реЗ рдЬрд╛рдд рдЕрд╕рддреАрд▓ рддрд░ рддреА рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рдХреЛрдб рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реА рдЬрд╛рдК рд╢рдХрддреЗ. рдирд╡реАрди рдПрдХреНрдЭрд┐рдХреНрдпреБрдЯреЗрдмрд▓ рдбрд┐рдЯреЗрдХреНрд╢рди рд▓реЙрдЬрд┐рдХрдордзреНрдпреЗ рд░рд╕реНрдЯ рдбрд┐рд░реЗрдХреНрдЯрд░реА, ре▓рдкреНрд▓рд┐рдХреЗрд╢рди рдбрд┐рд░реЗрдХреНрдЯрд░реА, рд╡рд┐рдВрдбреЛрдЬ рд╕рд┐рд╕реНрдЯрдо рдбрд┐рд░реЗрдХреНрдЯрд░реА рдЖрдгрд┐ PATH рдПрдирд╡рд╛рдпрд░рдореЗрдВрдЯ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓рдордзреНрдпреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдбрд┐рд░реЗрдХреНрдЯрд░реА рд╢реЛрдзрдгреЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗ.
  • рд░рд┐рдЯрд░реНрди рд╡реНрд╣реЕрд▓реНрдпреВрдХрдбреЗ рджреБрд░реНрд▓рдХреНрд╖ рдХреЗрд▓реНрдпрд╛рд╕ рдЪреЗрддрд╛рд╡рдгреА рджреЗрдгреНрдпрд╛рд╕рд╛рдареА рдорд╛рдирдХ рд▓рд╛рдпрдмреНрд░рд░реАрдиреЗ "#[must_use]" рдЪрд┐рдиреНрд╣рд╛рдВрдХрд┐рдд рдХреЗрд▓реЗрд▓реНрдпрд╛ рдлрдВрдХреНрд╢рдиреНрд╕рдЪреА рд╕рдВрдЦреНрдпрд╛ рд╡рд╛рдврд╡рд▓реА рдЖрд╣реЗ, рдЬреЗ рдирд╡реАрди рдореВрд▓реНрдп рдкрд░рдд рдХрд░рдгреНрдпрд╛рдРрд╡рдЬреА рдлрдВрдХреНрд╢рди рдореВрд▓реНрдпреЗ рдмрджрд▓реЗрд▓ рдЕрд╕реЗ рдЧреГрд╣реАрдд рдзрд░рд▓реНрдпрд╛рдореБрд│реЗ рдЭрд╛рд▓реЗрд▓реНрдпрд╛ рддреНрд░реБрдЯреА рдУрд│рдЦрдгреНрдпрд╛рдд рдорджрдд рдХрд░рддреЗ.
  • API рдЪрд╛ рдПрдХ рдирд╡реАрди рднрд╛рдЧ рд╕реНрдерд┐рд░ рд╢реНрд░реЗрдгреАрдордзреНрдпреЗ рд╣рд▓рд╡рд┐рд▓рд╛ рдЧреЗрд▓рд╛ рдЖрд╣реЗ, рдЬреНрдпрд╛рдордзреНрдпреЗ рдкрджреНрдзрддреА рдЖрдгрд┐ рдЧреБрдгрдзрд░реНрдорд╛рдВрдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рд╕реНрдерд┐рд░ рдХреЗрд▓реА рдЧреЗрд▓реА рдЖрд╣реЗ:
    • рдореЗрдЯрд╛рдбреЗрдЯрд╛::is_symlink
    • рдкрде::is_symlink
    • {integer}::saturating_div
    • рдкрд░реНрдпрд╛рдп::unwrap_unchecked
    • рдкрд░рд┐рдгрд╛рдо::unwrap_unchecked
    • рдкрд░рд┐рдгрд╛рдо::unwrap_err_uncheck
  • "const" рд╡рд┐рд╢реЗрд╖рддрд╛, рдЬреА рд╕реНрдерд┐рд░рд╛рдВрдХрд╛рдВрдРрд╡рдЬреА рдХреЛрдгрддреНрдпрд╛рд╣реА рд╕рдВрджрд░реНрднрд╛рдд рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рд╢рдХреНрдпрддрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ, рдлрдВрдХреНрд╢рдиреНрд╕рдордзреНрдпреЗ рд╡рд╛рдкрд░рд▓реА рдЬрд╛рддреЗ:
    • рдХрд╛рд▓рд╛рд╡рдзреА::рдирд╡реАрди
    • рдХрд╛рд▓рд╛рд╡рдзреА::checked_add
    • рдХрд╛рд▓рд╛рд╡рдзреА::рд╕рдВрддреГрдкреНрдд_рдЬреЛрдбрдгреЗ
    • рдХрд╛рд▓рд╛рд╡рдзреА::checked_sub
    • рдХрд╛рд▓рд╛рд╡рдзреА::рд╕рдВрддреГрдкреНрдд_рд╕рдм
    • рдХрд╛рд▓рд╛рд╡рдзреА::checked_mul
    • рдХрд╛рд▓рд╛рд╡рдзреА::рд╕рдВрддреГрдкреНрдд_рдореБрд▓
    • рдХрд╛рд▓рд╛рд╡рдзреА::checked_div
  • "const" рд╕рдВрджрд░реНрднрд╛рдВрдордзреНрдпреЗ "*const T" рдкреЙрдЗрдВрдЯрд░рдЪрд╛ рд╕рдВрджрд░реНрдн рдШреЗрдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рдЖрд╣реЗ.
  • рдХрд╛рд░реНрдЧреЛ рдкреЕрдХреЗрдЬ рдореЕрдиреЗрдЬрд░рдордзреНрдпреЗ, rust_version рдлреАрд▓реНрдб рдкреЕрдХреЗрдЬ рдореЗрдЯрд╛рдбреЗрдЯрд╛рдордзреНрдпреЗ рдЬреЛрдбрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ, рдЖрдгрд┐ "--message-format" рдкрд░реНрдпрд╛рдп "cargo install" рдХрдорд╛рдВрдбрдордзреНрдпреЗ рдЬреЛрдбрд▓рд╛ рдЧреЗрд▓рд╛ рдЖрд╣реЗ.
  • рдХрдВрдкрд╛рдЗрд▓рд░ рд╕реАрдПрдлрдЖрдп (рдХрдВрдЯреНрд░реЛрд▓ рдлреНрд▓реЛ рдЗрдВрдЯрд┐рдЧреНрд░рд┐рдЯреА) рд╕рдВрд░рдХреНрд╖рдг рдпрдВрддреНрд░рдгреЗрд╕рд╛рдареА рд╕рдорд░реНрдерди рд▓рд╛рдЧреВ рдХрд░рддреЗ, рдЬреЗ рдкреНрд░рддреНрдпреЗрдХ рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рдХреЙрд▓рдкреВрд░реНрд╡реА рдХрд╛рд╣реА рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡рд░реНрддрди рд╢реЛрдзрдгреНрдпрд╛рд╕рд╛рдареА рдЪреЗрдХ рдЬреЛрдбрддреЗ рдЬреНрдпрд╛рдореБрд│реЗ рд╕рд╛рдорд╛рдиреНрдп рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдСрд░реНрдбрд░рдЪреЗ (рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рд╡рд╛рд╣) рдЙрд▓реНрд▓рдВрдШрди рд╣реЛрдгреНрдпрд╛рдЪреА рд╢рдХреНрдпрддрд╛ рдЕрд╕рддреЗ. рдлрдВрдХреНрд╢рдиреНрд╕рд╡рд░ рдореЗрдорд░реАрдордзреНрдпреЗ рд╕рдВрдЪрдпрд┐рдд рдХреЗрд▓реЗрд▓реЗ рдкреЙрдЗрдВрдЯрд░ рдмрджрд▓рдгрд╛рд░реЗ рд╢реЛрд╖рдгрд╛рдВрдЪрд╛ рд╡рд╛рдкрд░.
  • рдХрдВрдкрд╛рдЗрд▓рд░рдиреЗ LLVM рдХрд╡реНрд╣рд░реЗрдЬ рддреБрд▓рдирд╛ рдлреЙрд░рдореЕрдЯрдЪреНрдпрд╛ рдЖрд╡реГрддреНрддреНрдпрд╛ 5 рдЖрдгрд┐ 6 рд╕рд╛рдареА рд╕рдорд░реНрдерди рдЬреЛрдбрд▓реЗ рдЖрд╣реЗ, рдЬреЗ рдЪрд╛рдЪрдгреА рджрд░рдореНрдпрд╛рди рдХреЛрдб рдХрд╡реНрд╣рд░реЗрдЬрдЪреЗ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ.
  • рдХрдВрдкрд╛рдЗрд▓рд░рдордзреНрдпреЗ, LLVM рдЪреНрдпрд╛ рдХрд┐рдорд╛рди рдЖрд╡реГрддреНрддреАрдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ LLVM 12 рдкрд░реНрдпрдВрдд рд╡рд╛рдврд╡рд▓реА рдЖрд╣реЗ.
  • x86_64-unknown-none рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╕рд╛рдареА рд╕рдорд░реНрдердирд╛рдЪрд╛ рддрд┐рд╕рд░рд╛ рд╕реНрддрд░ рд▓рд╛рдЧреВ рдХреЗрд▓рд╛ рдЧреЗрд▓рд╛ рдЖрд╣реЗ. рддрд┐рд╕рд▒реНрдпрд╛ рд╕реНрддрд░рд╛рдордзреНрдпреЗ рдореВрд▓рднреВрдд рд╕рдорд░реНрдерди рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗ, рдкрд░рдВрддреБ рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рдЪрд╛рдЪрдгреАрд╢рд┐рд╡рд╛рдп, рдЕрдзрд┐рдХреГрдд рдмрд┐рд▓реНрдб рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдгреЗ рдХрд┐рдВрд╡рд╛ рдХреЛрдб рддрдпрд╛рд░ рдХреЗрд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ рдХреА рдирд╛рд╣реА рд╣реЗ рддрдкрд╛рд╕рдгреЗ.

рдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдЖрдореНрд╣реА Windows 0.30 рд▓рд╛рдпрдмреНрд░рд░реАрд╕рд╛рдареА рд░рд╕реНрдЯрдЪреНрдпрд╛ рдкреНрд░рдХрд╛рд╢рдирд╛рдЪреЗ Microsoft рджреНрд╡рд╛рд░реЗ рдкреНрд░рдХрд╛рд╢рди рд▓рдХреНрд╖рд╛рдд рдШреЗрдК рд╢рдХрддреЛ, рдЬреЗ рддреБрдореНрд╣рд╛рд▓рд╛ Windows OS рд╕рд╛рдареА рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд░рд╕реНрдЯ рднрд╛рд╖рд╛ рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ. рд╕реЗрдЯрдордзреНрдпреЗ рджреЛрди рдХреНрд░реЗрдЯ рдкреЕрдХреЗрдЬреЗрд╕ (рд╡рд┐рдВрдбреЛрдЬ рдЖрдгрд┐ рд╡рд┐рдВрдбреЛрдЬ-sys) рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗрдд, рдЬреНрдпрд╛рджреНрд╡рд╛рд░реЗ рдЖрдкрдг рд░рд╕реНрдЯ рдкреНрд░реЛрдЧреНрд░рд╛рдореНрд╕рдордзреНрдпреЗ рд╡рд┐рди API рдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдХрд░реВ рд╢рдХрддрд╛. API рд╕рдорд░реНрдердирд╛рд╕рд╛рдареА рдХреЛрдб API рдЪреЗ рд╡рд░реНрдгрди рдХрд░рдгрд╛рд▒реНрдпрд╛ рдореЗрдЯрд╛рдбреЗрдЯрд╛рдордзреВрди рдЧрддрд┐рд╢реАрд▓рдкрдгреЗ рд╡реНрдпреБрддреНрдкрдиреНрди рдХреЗрд▓рд╛ рдЬрд╛рддреЛ, рдЬреЛ рддреБрдореНрд╣рд╛рд▓рд╛ рдХреЗрд╡рд│ рд╡рд┐рджреНрдпрдорд╛рди Win API рдХреЙрд▓реНрд╕рд╕рд╛рдареАрдЪ рдирд╡реНрд╣реЗ рддрд░ рднрд╡рд┐рд╖реНрдпрд╛рдд рджрд┐рд╕рдгрд╛рд▒реНрдпрд╛ рдХреЙрд▓рд╕рд╛рдареА рд╕рдорд░реНрдерди рд▓рд╛рдЧреВ рдХрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЛ. рдирд╡реАрди рдЖрд╡реГрддреНрддреА UWP (рдпреБрдирд┐рд╡реНрд╣рд░реНрд╕рд▓ рд╡рд┐рдВрдбреЛрдЬ рдкреНрд▓реЕрдЯрдлреЙрд░реНрдо) рд▓рдХреНрд╖реНрдп рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╕рд╛рдареА рд╕рдорд░реНрдерди рдЬреЛрдбрддреЗ рдЖрдгрд┐ рд╣рдБрдбрд▓ рдЖрдгрд┐ рдбреАрдмрдЧ рдкреНрд░рдХрд╛рд░ рд▓рд╛рдЧреВ рдХрд░рддреЗ.

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛