рд░рд╕реНрдЯ 1.53 рд░рд┐рд▓реАрдЬ рдЭрд╛рд▓рд╛. рд▓рд┐рдирдХреНрд╕ рдХрд░реНрдирд▓рдордзреНрдпреЗ рд░рд╕реНрдЯ рд╕рдкреЛрд░реНрдЯ рдЬреЛрдбрдгреНрдпрд╛рд╕рд╛рдареА Google рдирд┐рдзреА рджреЗрдИрд▓

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

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

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

  • рдЕреЕрд░реЗрд╕рд╛рдареА, IntoIterator рд╡реИрд╢рд┐рд╖реНрдЯреНрдп рд▓рд╛рдЧреВ рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ, рдЬреЗ рддреБрдореНрд╣рд╛рд▓рд╛ рдЕреЕрд░реЗ рдШрдЯрдХрд╛рдВрдЪреЗ рдкреБрдирд░рд╛рд╡реГрддреНрддреА рдореВрд▓реНрдпрд╛рдВрдиреБрд╕рд╛рд░ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ: i рд╕рд╛рдареА [1, 2, 3] { .. }

    рдкреБрдирд░рд╛рд╡реГрддреНрддреА рд╕реНрд╡реАрдХрд╛рд░рдгрд╛рд▒реНрдпрд╛ рдкрджреНрдзрддреАрдВрдордзреНрдпреЗ рдЕреЕрд░реЗ рдкрд╛рд╕ рдХрд░рдгреЗ рджреЗрдЦреАрд▓ рд╢рдХреНрдп рдЖрд╣реЗ, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде: let set = BTreeSet::from_iter([1, 2, 3]); some_iterator.chain([1]).zip([1, 2, 3]) рдордзреНрдпреЗ (a, b) рд╕рд╛рдареА { .. }

    рдкреВрд░реНрд╡реА, IntoIterator рдлрдХреНрдд рдЕреЕрд░реЗ рд╕рдВрджрд░реНрднрд╛рдВрд╕рд╛рдареА рд▓рд╛рдЧреВ рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рд╣реЛрддреЗ, рдореНрд╣рдгрдЬреЗ. рдореВрд▓реНрдпрд╛рдВрд╡рд░ рдкреБрдирд░рд╛рд╡реГрддреНрддреА рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕рдВрджрд░реНрднрд╛рдВрдЪрд╛ рд╡рд╛рдкрд░ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ (тАЬ&[1, 2, 3]тАЭ) рдХрд┐рдВрд╡рд╛ тАЬ[1, 2, 3].iter()тАЭ. array.into_iter() рд╡рд░реВрди (&array).into_iter() рдордзреНрдпреЗ рдкреВрд░реНрд╡реАрдЪреНрдпрд╛ рдХрдВрдкрд╛рдЗрд▓рд░ рд░реВрдкрд╛рдВрддрд░рдгрд╛рдореБрд│реЗ рдЕтАНреЕрд░реЗрд╕рд╛рдареА IntoIterator рдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рд╕реБрд╕рдВрдЧрддрддрд╛ рд╕рдорд╕реНрдпрд╛рдВрдореБрд│реЗ рдмрд╛рдзрд┐рдд рдЭрд╛рд▓реА. рдпрд╛ рд╕рдорд╕реНрдпрд╛ рдПрдХрд╛ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдбрдиреЗ рд╕реЛрдбрд╡рд▓реНрдпрд╛ рдЧреЗрд▓реНрдпрд╛ - рдХрдВрдкрд╛рдЗрд▓рд░ array.into_iter() рд▓рд╛ (&array).into_iter() рдордзреНрдпреЗ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХрд░рдгреЗ рд╕реБрд░реВ рдареЗрд╡реЗрд▓ рдЬрд╕реЗ рдХреА IntoIterator рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдирд╛рд╣реА, рдкрд░рдВрддреБ рдХреЗрд╡рд│ ".into_iter( рд╡рд╛рдкрд░реВрди рдкрджреНрдзрдд рдХреЙрд▓ рдХрд░рддрд╛рдирд╛). )" рд╡рд╛рдХреНрдпрд░рдЪрдирд╛ рдЖрдгрд┐ "[1, 2, 3] рдордзреНрдпреЗ", "iter.zip([1, 2, 3])", "IntoIterator::into_iter([1, 2, 3]) рдордзреАрд▓ рдХреЙрд▓рд▓рд╛ рд╕реНрдкрд░реНрд╢ рди рдХрд░рддрд╛ )"

  • рдЕрднрд┐рд╡реНрдпрдХреНрддреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдгреЗ рд╢рдХреНрдп рдЖрд╣реЗ тАЬ|тАЭ (рддрд╛рд░реНрдХрд┐рдХ рдХрд┐рдВрд╡рд╛ рдСрдкрд░реЗрд╢рди) рдЯреЗрдореНрдкрд▓реЗрдЯрдЪреНрдпрд╛ рдХреЛрдгрддреНрдпрд╛рд╣реА рднрд╛рдЧрд╛рдд, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, тАЬSome(1) рдРрд╡рдЬреА | Some(2)" рддреБрдореНрд╣реА рдЖрддрд╛ "Some(1 | 2)" рд▓рд┐рд╣реВ рд╢рдХрддрд╛: рдЬреБрд│рдгреА рдкрд░рд┐рдгрд╛рдо { Ok(Some(1 | 2)) => {.. } Err(MyError { kind: FileNotFound | PermissionDenied, .. }) => { .. } _ => { .. } }
  • рдпреБрдирд┐рдХреЛрдб UAX 31 рд╕реНрдкреЗрд╕рд┐рдлрд┐рдХреЗрд╢рдирдордзреНрдпреЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЗрд▓реЗрд▓реНрдпрд╛ рдХреЛрдгрддреНрдпрд╛рд╣реА рд░рд╛рд╖реНрдЯреНрд░реАрдп рд╡рд░реНрдгрд╛рдВрд╕рд╣, рдкрд░рдВрддреБ рдЗрдореЛрдЬреА рд╡рд░реНрдг рд╡рдЧрд│реВрди рдЕрднрд┐рдЬреНрдЮрд╛рдкрдХрд╛рдВрдордзреНрдпреЗ ASCII рдирд╕рд▓реЗрд▓реНрдпрд╛ рд╡рд░реНрдгрд╛рдВрдЪреНрдпрд╛ рд╡рд╛рдкрд░рд╛рд╕ рдкрд░рд╡рд╛рдирдЧреА рдЖрд╣реЗ. рдЖрдкрдг рднрд┐рдиреНрди рдкрд░рдВрддреБ рд╕рдорд╛рди рд╡рд░реНрдг рд╡рд╛рдкрд░рд▓реНрдпрд╛рд╕, рдХрдВрдкрд╛рдЗрд▓рд░ рдПрдХ рдЪреЗрддрд╛рд╡рдгреА рдЬрд╛рд░реА рдХрд░реЗрд▓. const BL├ЕHAJ: &str = "ЁЯжИ"; рд░рдЪрдирд╛ ф║║ { хРНхнЧ: рд╕реНрдЯреНрд░рд┐рдВрдЧ, } let ╬▒ = 1; letя╜Уos = 2; рдЪреЗрддрд╛рд╡рдгреА: рдУрд│рдЦрдХрд░реНрддрд╛ рдЬреЛрдбреА 'я╜У' рдЖрдгрд┐ 's' рдордзреНрдпреЗ рдЧреЛрдВрдзрд│рд╛рдд рдЯрд╛рдХрдгрд╛рд░реА рдорд╛рдирд▓реА рдЬрд╛рддреЗ
  • рдПрдкреАрдЖрдпрдЪрд╛ рдПрдХ рдирд╡реАрди рднрд╛рдЧ рд╕реНрдерд┐рд░ рд╢реНрд░реЗрдгреАрдордзреНрдпреЗ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХреЗрд▓рд╛ рдЧреЗрд▓рд╛ рдЖрд╣реЗ, рдЬреНрдпрд╛рдордзреНрдпреЗ рдЦрд╛рд▓реАрд▓ рд╕реНрдерд┐рд░реАрдХрд░рдг рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗ:
    • array::from_ref
    • array::from_mut
    • AtomicBool::fetch_update
    • AtomicPtr::fetch_update
    • BTreeSet:: рд░рд╛рдЦреВрди рдареЗрд╡рд╛
    • BTreeMap:: рд░рд╛рдЦреВрди рдареЗрд╡рд╛
    • рдмрдлрд░реАрдбрд░::seek_relative
    • cmp::min_by
    • cmp::min_by_key
    • cmp::max_by
    • cmp::max_by_key
    • DebugStruct::finish_non_exhaustive
    • рдХрд╛рд▓рд╛рд╡рдзреА::ZERO
    • рдХрд╛рд▓рд╛рд╡рдзреА::MAX
    • рдХрд╛рд▓рд╛рд╡рдзреА::рд╢реВрдиреНрдп рдЖрд╣реЗ
    • рдХрд╛рд▓рд╛рд╡рдзреА::рд╕рдВрддреГрдкреНрдд_рдЬреЛрдбрдгреЗ
    • рдХрд╛рд▓рд╛рд╡рдзреА::рд╕рдВрддреГрдкреНрдд_рд╕рдм
    • рдХрд╛рд▓рд╛рд╡рдзреА::рд╕рдВрддреГрдкреНрдд_рдореБрд▓
    • f32::is_subnormal
    • f64::is_subnormal
    • рдЕреЕрд░реЗрд╕рд╛рдареА IntoIterator
    • {integer}::BITS
    • io::рддреНрд░реБрдЯреА::рд╕рдкреЛрд░реНрдЯ рдирд╛рд╣реА
    • рдиреЙрдирдЭрд┐рд░реЛ*::рд▓реАрдбрд┐рдВрдЧ_рд╢реВрдиреНрдп
    • рдиреЙрдирдЭрд┐рд░реЛ*::trailing_zeros
    • рдкрд░реНрдпрд╛рдп:: рдШрд╛рд▓рд╛
    • рдСрд░реНрдбрд░ рдХрд░рдд рдЖрд╣реЗ::is_eq
    • рдСрд░реНрдбрд░ рдХрд░рдд рдЖрд╣реЗ::is_ne
    • рдСрд░реНрдбрд░ рдХрд░рдд рдЖрд╣реЗ::is_lt
    • рдСрд░реНрдбрд░ рдХрд░рдд рдЖрд╣реЗ::is_gt
    • рдСрд░реНрдбрд░ рдХрд░рдд рдЖрд╣реЗ::is_le
    • рдСрд░реНрдбрд░ рдХрд░рдд рдЖрд╣реЗ::is_ge
    • OsStr::make_ascii_lowercase
    • OsStr::make_ascii_uppercase
    • OsStr::to_ascii_lowercase
    • OsStr::to_ascii_uppercase
    • OsStr::is_ascii
    • OsStr::eq_ignore_ascii_case
    • рдбреЛрдХрд╛рд╡рдгреНрдпрд╛рдпреЛрдЧреНрдп::peek_mut
    • Rc::increment_strong_count
    • Rc::decrement_strong_count
    • рд╕реНрд▓рд╛рдЗрд╕::IterMut::as_slice
    • AsRef<[T]> рд╕реНрд▓рд╛рдЗрд╕::IterMut рд╕рд╛рдареА
    • рд╕рд╛рдареА impl SliceIndex (рдмрд╛рдЙрдВрдб , рдмрд╛рдВрдзрд▓реЗрд▓реЗ )
    • Vec::extend_from_within
  • wasm64-рдЕрдЬреНрдЮрд╛рдд-рдЕрдЬреНрдЮрд╛рдд рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╕рд╛рдареА рд╕рдорд░реНрдердирд╛рдЪрд╛ рддрд┐рд╕рд░рд╛ рд╕реНрддрд░ рд▓рд╛рдЧреВ рдХреЗрд▓рд╛ рдЧреЗрд▓рд╛ рдЖрд╣реЗ. рддрд┐рд╕рд▒реНрдпрд╛ рд╕реНрддрд░рд╛рдордзреНрдпреЗ рдореВрд▓рднреВрдд рд╕рдорд░реНрдерди рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗ, рдкрд░рдВрддреБ рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рдЪрд╛рдЪрдгреАрд╢рд┐рд╡рд╛рдп, рдЕрдзрд┐рдХреГрдд рдмрд┐рд▓реНрдб рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдгреЗ рдХрд┐рдВрд╡рд╛ рдХреЛрдб рддрдпрд╛рд░ рдХреЗрд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ рдХреА рдирд╛рд╣реА рд╣реЗ рддрдкрд╛рд╕рдгреЗ.
  • рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░ Git рд░рд┐рдкреЙрдЭрд┐рдЯрд░реА (HEAD) рдЪреНрдпрд╛ рдореБрдЦреНрдп рд╢рд╛рдЦреЗрд╕рд╛рдареА "рдореБрдЦреНрдп" рдирд╛рд╡ рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХрд╛рд░реНрдЧреЛ рдкреЕрдХреЗрдЬ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рд╣рд▓рд╡рд┐рд▓рд╛ рдЧреЗрд▓рд╛ рдЖрд╣реЗ. рд░реЗрдкреЙрдЬрд┐рдЯрд░реАрдЬрдордзреНрдпреЗ рд╣реЛрд╕реНрдЯ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдЕрд╡рд▓рдВрдмрдирд╛рдВрдирд╛ рдорд╛рд╕реНрдЯрд░ рдРрд╡рдЬреА рдореБрдЦреНрдп рдирд╛рд╡ рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕рд╛рдареА рдпрд╛рдкреБрдвреЗ рдмреНрд░рдБрдЪ = "рдореБрдЦреНрдп" рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╛рд╣реА.
  • рдХрдВрдкрд╛рдЗрд▓рд░рдордзреНрдпреЗ, LLVM рдЪреНрдпрд╛ рдХрд┐рдорд╛рди рдЖрд╡реГрддреНрддреАрдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ LLVM 10 рдкрд░реНрдпрдВрдд рд╡рд╛рдврд╡рд▓реА рдЖрд╣реЗ.

рдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдЖрдореНрд╣реА Rust рднрд╛рд╖реЗрддреАрд▓ рдШрдЯрдХ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЯреВрд▓реНрд╕рдЪреНрдпрд╛ Linux рдХрд░реНрдирд▓рдордзреНрдпреЗ рдПрдХрддреНрд░реАрдХрд░рдгрд╛рдЪреНрдпрд╛ рд╡рд┐рдХрд╛рд╕рд╛рд╕рд╛рдареА рдирд┐рдзреАрдЪреА рддрд░рддреВрдж рд▓рдХреНрд╖рд╛рдд рдШреЗрдК рд╢рдХрддреЛ. рд╣реЗ рдХрд╛рдо рдЖрдпрдПрд╕рдЖрд░рдЬреА рд╕рдВрд╕реНрдереЗрдЪреНрдпрд╛ (рдЗрдВрдЯрд░рдиреЗрдЯ рд╕рд┐рдХреНрдпреБрд░рд┐рдЯреА рд░рд┐рд╕рд░реНрдЪ рдЧреНрд░реБрдк) рдЖрд╢реНрд░рдпрд╛рдиреЗ рдкреНрд░реЛрд╕рд┐рдореЛ рдкреНрд░рдХрд▓реНрдкрд╛рдЪреНрдпрд╛ рдЪреМрдХрдЯреАрдд рдХреЗрд▓реЗ рдЬрд╛рдИрд▓, рдЬреЗ рд▓реЗрдЯреНрд╕ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рдХрд▓реНрдкрд╛рдЪреЗ рд╕рдВрд╕реНрдерд╛рдкрдХ рдЖрд╣реЗ рдЖрдгрд┐ рдПрдЪрдЯреАрдЯреАрдкреАрдПрд╕ рдЖрдгрд┐ рддрдВрддреНрд░рдЬреНрдЮрд╛рдирд╛рдЪреНрдпрд╛ рд╡рд┐рдХрд╛рд╕рд╛рд▓рд╛ рдкреНрд░реЛрддреНрд╕рд╛рд╣рди рджреЗрддреЗ. рдЗрдВрдЯрд░рдиреЗрдЯ. Google рджреНрд╡рд╛рд░реЗ рдирд┐рдзреА рдкреНрд░рджрд╛рди рдХреЗрд▓рд╛ рдЬрд╛рдИрд▓, рдЬреЛ рд░рд╕реНрдЯ-рдлреЙрд░-рд▓рд┐рдирдХреНрд╕ рдкреНрд░рдХрд▓реНрдкрд╛рдЪреЗ рд▓реЗрдЦрдХ рдорд┐рдЧреБрдПрд▓ рдУрдЬреЗрдбрд╛ рдпрд╛рдВрдЪреНрдпрд╛ рдХрд╛рдорд╛рд╕рд╛рдареА рдкреИрд╕реЗ рджреЗрдИрд▓. рдкреВрд░реНрд╡реА, ISRG рдЖрдгрд┐ Google рдиреЗ рдЖрдзреАрдЪ curl рдпреБрдЯрд┐рд▓рд┐рдЯреАрд╕рд╛рдареА рдкрд░реНрдпрд╛рдпреА HTTP рдмреЕрдХрдПрдВрдб рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ Apache HTTP рд╕рд░реНрд╡реНрд╣рд░рд╕рд╛рдареА рдирд╡реАрди TLS рдореЙрдбреНрдпреВрд▓ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдирд┐рдзреА рджрд┐рд▓рд╛ рдЖрд╣реЗ.

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

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

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

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