2018 рдХреА рдЬрдВрдЧ рд╢реБрд░реВ рд╣реЛ рдЧрдИ ... рд▓реЗрдХрд┐рди рдпрд╣ рдХреНрдпрд╛ рд╣реИ?

рдпрд╣ рд▓реЗрдЦ рд░рд╕реНрдЯ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдЯреАрдо ("рд╣рдо" рдкрд╛рда рдореЗрдВ) рдХреЗ рд╕рд╣рдпреЛрдЧ рд╕реЗ рд▓рд┐рди рдХреНрд▓рд╛рд░реНрдХ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ред рдЖрдк рдкреЛрд╕реНрдЯ рдХреЛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд░рд╕реНрдЯ рдмреНрд▓реЙрдЧ рдкрд░ рднреА рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред

Rust 2018 рдХрд╛ рдкрд╣рд▓рд╛ рд╕рдВрд╕реНрдХрд░рдг 6 рджрд┐рд╕рдВрдмрд░, 2018 рдХреЛ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕ рд░рд┐рд▓реАрдЬ рдореЗрдВ, рд╣рдордиреЗ рдЙрддреНрдкрд╛рджрдХрддрд╛ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд┐рдпрд╛, рддрд╛рдХрд┐ Rust Developers рдпрдерд╛рд╕рдВрднрд╡ рдХреБрд╢рд▓рддрд╛ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧреЗред


рд╕рдордпрд░реЗрдЦрд╛ рдмреАрдЯрд╛ рд╕реЗ рд░рд╕реНрдЯ 2018 рдФрд░ рд░рд╕реНрдЯ 2015 рддрдХ рдХреЗ рд╕рдВрдХреНрд░рдордг рдХреЛ рджрд┐рдЦрд╛рддреА рд╣реИред рдпрд╣ рдЯреВрд▓ рдФрд░ рдЪрд╛рд░ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдЗрдХрди рд╕реЗ рдШрд┐рд░рд╛ рд╣реБрдЖ рд╣реИ: WebAssembly, рдПрдореНрдмреЗрдбреЗрдб, рдиреЗрдЯрд╡рд░реНрдХрд┐рдВрдЧ рдФрд░ рд╕реАрдПрд▓рдЖрдИред рд░реЗрдб рд╕рд░реНрдХрд▓ - рдбреЗрд╡рд▓рдкрд░ рдЙрддреНрдкрд╛рджрдХрддрд╛ - рдЬрдВрдЧ 2015 рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рдм рдХреБрдЫ рдШреЗрд░ рд▓реЗрддреА рд╣реИ

рд▓реЗрдХрд┐рди рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░ рдпрд╣ рдмрддрд╛ рдкрд╛рдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИ рдХрд┐ рд░реВрд╕реНрдЯ 2018 рдХреНрдпрд╛ рд╣реИред

рдХреБрдЫ рдЗрд╕реЗ рднрд╛рд╖рд╛ рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддреЗ рд╣реИрдВ ... рдХреБрдЫ рдРрд╕рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВред рдореИрдВ рдХрд╣рддрд╛ рд╣реВрдВ "рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВ," рдХреНрдпреЛрдВрдХрд┐ рдпрд╣рд╛рдВ "рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг" рдХрд╛ рдорддрд▓рдм рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рд╕реЗ рдирд╣реАрдВ рд╣реИред

рдЕрдзрд┐рдХрд╛рдВрд╢ рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ, рд╕рднреА рдирдИ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдПрдХ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рдЬреЛрдбрд╝рддреА рд╣реИрдВред рдкрд┐рдЫрд▓рд╛ рд╕рдВрд╕реНрдХрд░рдг рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд░рд╕реНрдЯ рд╕рд┐рд╕реНрдЯрдо рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рд╕рдВрдЪрд╛рд▓рд┐рдд рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдЗрд╕ рдХрд╛рд░рдг рд╕реЗ рд╣реИ рдХрд┐ рднрд╛рд╖рд╛ рдХреИрд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрддреА рд╣реИред рд▓рдЧрднрдЧ рд╕рднреА рдирдИ рд╕реБрд╡рд┐рдзрд╛рдПрдБ Rust рдХреЗ рд╕рд╛рде 100% рд╕рдВрдЧрдд рд╣реИрдВред рдЙрдиреНрд╣реЗрдВ рдХрд┐рд╕реА рднреА рдмрджрд▓рд╛рд╡ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ 2018 рдХреЛрдб рдХреЛ рд░рд╕реНрдЯ рддрдХ рд╕реАрдорд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИред рд╕рдВрдХрд▓рдХ рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ "рд░рд╕реНрдЯ 2015 рдореЛрдб" рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдВрдЧреЗред

рд▓реЗрдХрд┐рди рдХрднреА-рдХрднреА рднрд╛рд╖рд╛ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдирд╡рд╛рдЪрд╛рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдирдпрд╛ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ред рдФрд░ рдпрд╣ рдирдпрд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдореМрдЬреВрджрд╛ рдХреЛрдбрдмреЗрд╕ рдХреЛ рддреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, async/await рдХрд╛рд░реНрдпред рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рд░рд╕реНрдЯ рдореЗрдВ рдРрд╕реА рдХреЛрдИ рдЕрд╡рдзрд╛рд░рдгрд╛ рдирд╣реАрдВ рдереАред рд▓реЗрдХрд┐рди рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдпреЗ рдЖрджрд┐рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реИрдВ, рд╡реЗ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдХреЛрдб рдХреЗ рд▓реЗрдЦрди рдХреЛ рд╕рд░рд▓ рдмрдирд╛рддреЗ рд╣реИрдВред

рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП, async рдФрд░ async рдореЗрдВ рдХреАрд╡рд░реНрдб рдЬреЛрдбрд╝реЗ рдЬрд╛рдиреЗ рдЪрд╛рд╣рд┐рдПред рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рд╕рд╛рд╡рдзрд╛рди рд░рд╣рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдкреБрд░рд╛рдиреЗ рдХреЛрдб рдХреЛ рдирд╣реАрдВ рддреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд╣рд╛рдВ async рдпрд╛ await рдХрд╛ рдЙрдкрдпреЛрдЧ рдЪрд░ рдирд╛рдореЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо Rust 2018 рдореЗрдВ рдХреАрд╡рд░реНрдб рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдЕрднреА рддрдХ рдЬрд╛рд░реА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдХреАрд╡рд░реНрдб рдЕрдм рдЖрд░рдХреНрд╖рд┐рдд рд╣реИрдВред рд╡рд┐рдХрд╛рд╕ рдХреЗ рдЕрдЧрд▓реЗ рддреАрди рд╡рд░реНрд╖реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рднреА рдЕрд╕рдВрдЧрдд рдкрд░рд┐рд╡рд░реНрддрди (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирдП рдХреАрд╡рд░реНрдб рдЬреЛрдбрд╝рдирд╛) рд░реВрд╕реНрдЯ 1.31 рдореЗрдВ рдПрдХ рдмрд╛рд░ рдореЗрдВ рдХрд┐рдП рдЧрдП рд╣реИрдВред



рд╣рд╛рд▓рд╛рдБрдХрд┐ Rust 2018 рдореЗрдВ рдЕрд╕рдВрдЧрдд рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрддреЗ рд╣реИрдВ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рдХреЛрдб рдЯреВрдЯ рдЬрд╛рдПрдЧрд╛ред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ async рдФрд░ await рдЪрд░ рдХреЗ рд╕рд╛рде, рдХреЛрдб рд╕рдВрдХрд▓рди рдХрд░реЗрдЧрд╛ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдХрдВрдкрд╛рдЗрд▓рд░ рдкрд╣рд▓реЗ рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рдирдП рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд░реВрд╕реНрдЯ 2018 рдХреЗ рдирдП рд╕рдВрдХрд▓рди рдореЛрдб рдХрд╛ рдЪрдпрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред cargo fix рдХрдорд╛рдВрдб рдХрд╣реЗрдЧреА рдпрджрд┐ рдЖрдкрдХреЛ рдирдП рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдФрд░ рдмрджрд▓рд╛рд╡ рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдирдП рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рд╕рд╣рдордд рд╣реИрдВ рддреЛ рдЖрдк рдЕрдкрдиреЗ Cargo.toml рдореЗрдВ edition=2018 рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред

рдпрд╣ рд╕рдВрд╕реНрдХрд░рдг рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреВрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдЖрдкрдХреА рдирд┐рд░реНрднрд░рддрд╛ рдкрд░ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░реИрдХ рддрдХ рд╕реАрдорд┐рдд рд╣реИред рдпрд╣реА рд╣реИ, рдЖрдк рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ Rust 2015 рдФрд░ Rust 2018 crates рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред



рдЗрд╕рд▓рд┐рдП, Rust 2018 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рднреА, рд╕рдм рдХреБрдЫ Rust 2015 рдХреЗ рд╕рдорд╛рди рд╣реА рджрд┐рдЦрддрд╛ рд╣реИред рдЕрдзрд┐рдХрд╛рдВрд╢ рдкрд░рд┐рд╡рд░реНрддрди Rust 2018 рдФрд░ Rust 2015 рдореЗрдВ рдПрдХ рд╕рд╛рде рдкреЗрд╢ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдХреЗрд╡рд▓ рдХреБрдЫ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрд╕рдВрдЧрдд рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред



Rust 2018 рди рдХреЗрд╡рд▓ рдореБрдЦреНрдп рднрд╛рд╖рд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╣реИред рджреВрд░ рд╡реЗ рд╣реА рдирд╣реАрдВред

Rust 2018, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, Rust Developers рдХреА рдЙрддреНрдкрд╛рджрдХрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░реЗрд░рдгрд╛, рдореЛрдЯреЗ рддреМрд░ рдкрд░ рдЙрди рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдЬреЛ рднрд╛рд╖рд╛ рдХреЗ рдмрд╛рд╣рд░ рд╣реИрдВ, рд╕рд╛рде рд╣реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдФрд░ рд╕рдордЭ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐ рдЗрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ Rust рдХреЛ рд╕рдмрд╕реЗ рдкреНрд░рднрд╛рд╡реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рдПред

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЖрдк Cargo.toml рдореЗрдВ рдПрдХ рд╡рд┐рдирд┐рд░реНрджреЗрд╢рдХ рдХреЗ рд░реВрдк рдореЗрдВ Rust 2018 рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдИ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рдиреНрд╣реЗрдВ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ ...



рдпрд╛ рдЖрдк рдЗрд╕реЗ рдЙрд╕ рд╕рдордп рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрдм рд░реБрд╕реНрдд рдХрдИ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдХреБрд╢рд▓ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдмрди рдЬрд╛рддрд╛ рд╣реИ - рдЬрдм рдЖрдкрдХреЛ рдкреНрд░рджрд░реНрд╢рди, рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рдХреБрд╢рд▓ рдЙрдкрдпреЛрдЧ рдпрд╛ рдЙрдЪреНрдЪ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред



рд╣рдо рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рджреВрд╕рд░реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВред рддреЛ, рдЖрдЗрдП рднрд╛рд╖рд╛ рдХреЗ рдмрд╛рд╣рд░ рдХрд┐рдП рдЧрдП рд╕рднреА рд╕реБрдзрд╛рд░реЛрдВ рдХреЛ рджреЗрдЦреЗрдВ, рдФрд░ рдлрд┐рд░ рднрд╛рд╖рд╛ рдореЗрдВ рд╣реА рдбреБрдмрдХреА рд▓рдЧрд╛рдПрдВред

рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрдВрдЧ


рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдкреНрд░рднрд╛рд╡реА рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИред рдпрд╣ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ рдкреНрд░рднрд╛рд╡реА рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдо рд╕рдордЭ рдЧрдП рдХрд┐ рднрд╛рд╖рд╛ рдпрд╛ рдЙрдкрдХрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рд░рд╕реНрдЯ рдХреЛ рд╕реБрдзрд╛рд░рдирд╛ рдХреЗрд╡рд▓ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рдерд╛ред рдХреБрдЫ рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рдЬрдВрдЧ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдЖрд╡рд╢реНрдпрдХ рд╣реИред



рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирдП рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдХреЗ рд▓рд┐рдП рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдПрдХ рдирдпрд╛ рд╕реЗрдЯ рдмрдирд╛рдирд╛ рдерд╛ред рдЕрдиреНрдп рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдореМрдЬреВрджрд╛ рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рдЕрдЪреНрдЫреЗ рдкреНрд░рд▓реЗрдЦрди рдХреЛ рдЪрдордХрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░реНрдп рдкреНрд░рдгрд╛рд▓реА рдХреЛ рдЙрдард╛рдирд╛ рдФрд░ рдЪрд▓рд╛рдирд╛ рдЖрд╕рд╛рди рд╣реИред

рдЬрдВрдЧ рд╡рд┐рдХрд╛рд╕ рдЯреАрдо рдиреЗ рдЪрд╛рд░ рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рдХрд╛рд░реНрдп рд╕рдореВрд╣реЛрдВ рдХрд╛ рдЧрдарди рдХрд┐рдпрд╛ рд╣реИ:

  • WebAssembly
  • рдПрдВрдмреЗрдбреЗрдб рдПрдкреНрд▓реАрдХреЗрд╢рди
  • рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛рд░реНрдп
  • рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЙрдкрдХрд░рдг

WebAssembly


WebAssembly рдХреЛ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдПрдХ рдирдпрд╛ рд╕реЗрдЯ рдмрдирд╛рдирд╛ рдкрдбрд╝рд╛ред

рдХреЗрд╡рд▓ рдкрд┐рдЫрд▓реЗ рд╕рд╛рд▓ рд╣реА WebAssembly рдиреЗ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдЪрд▓рдиреЗ рдХреЗ рд▓рд┐рдП Rust рдЬреИрд╕реА рднрд╛рд╖рд╛рдУрдВ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рдпрд╛ред рддрдм рд╕реЗ, рд░реБрд╕реНрдд рддреЗрдЬреА рд╕реЗ рдореМрдЬреВрджрд╛ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рднрд╛рд╖рд╛ рдмрди рдЧрдИ рд╣реИред



рджреЛ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рд╡реЗрдм рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдЬрдВрдЧ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЕрдиреБрдХреВрд▓ рд╣реИ:

  1. рдХрд╛рд░реНрдЧреЛ рдХреНрд░реИрд╢ рдЗрдХреЛрд╕рд┐рд╕реНрдЯрдо рдЙрд╕ рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рдмрдбрд╝рд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЫреЛрдЯреЗ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдорд┐рд▓рд╛рдПрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рд░реВрд╕реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
  2. рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдореЗрдВ рдЬрдВрдЧ рдХрдо рд╣реИ рдФрд░ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд░рдирдЯрд╛рдЗрдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрдкрдХреЛ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдХреЛрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдЫреЛрдЯрд╛ рдореЙрдбреНрдпреВрд▓ рд╣реИ рдЬреЛ рдмрд╣реБрдд рдХрдард┐рди рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рддреЗрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд░рд╕реНрдЯ рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВред

Rust code рд╕реЗ web-sys рдФрд░ js-sys рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛, web API рдЬреИрд╕реЗ рдХрд┐ fetch рдпрд╛ appendChild рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред рдФрд░ wasm-bindgen рдЙрдЪреНрдЪ рд╕реНрддрд░ рдХреЗ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИ рдЬреЛ WebAssembly рдореВрд▓ рд░реВрдк рд╕реЗ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

Rust WebAssembly рдореЙрдбреНрдпреВрд▓ рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд╛рдж, рдЗрд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рд╢реЗрд╖ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдХрд░рдг рд╣реИрдВред рдЖрдк рдЗрди рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдФрд░ рдпрджрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ npm рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк wasm-pack рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдкреБрд╕реНрддрдХ рдЬрдВрдЧ рдФрд░ WebAssembly рджреЗрдЦреЗрдВ ред

рдЖрдЧреЗ рдХреНрдпрд╛ рд╣реИ?


Rust 2018 рдХреЗ рдЬрд╛рд░реА рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рдЙрд╕ рд╕рдореБрджрд╛рдп рдХреЗ рд╕рд╛рде рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЖрдЧреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢ рджрд┐рдП рдЧрдП рд╣реИрдВред

рдПрдВрдмреЗрдбреЗрдб рдПрдкреНрд▓реАрдХреЗрд╢рди


рдПрдореНрдмреЗрдбреЗрдб рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП, рдореМрдЬреВрджрд╛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреА рд╕реНрдерд┐рд░рддрд╛ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдерд╛ред

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

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



рдирддреАрдЬрддрди, рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЬрдВрдЧ рдХреЗ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдирд┐рд░реНрднрд░ рдереЗред рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдЕрдХреНрд╕рд░ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреА рдереАред

рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдПрдХ рд╕реНрдерд┐рд░ рдЪреИрдирд▓ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░реНрд╕ рдХреЗ рд▓рд┐рдП рд╕реАрдЖрдИ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдЬреЛрдбрд╝реЗред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдбреЗрд╕реНрдХрдЯреЙрдк рдШрдЯрдХ рдХреЛ рдмрджрд▓рдиреЗ рд╕реЗ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдирд╣реАрдВ рдЯреВрдЯреЗрдЧрд╛ред

рдЗрд╕ рддрд░рд╣ рдХреЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд╕рд╛рде, рд░рд╕реНрдЯ рдкрд░ рдПрдореНрдмреЗрдбреЗрдб рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рд╡рд┐рдХрд╛рд╕ рдЙрдиреНрдирдд рдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдХреНрд╖реЗрддреНрд░ рд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рджрдХреНрд╖рддрд╛ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдмрдврд╝ рд░рд╣рд╛ рд╣реИред

рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рдПрдВрдмреЗрдбреЗрдб рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдкреБрд╕реНрддрдХ рдЬрдВрдЧ рджреЗрдЦреЗрдВред

рдЖрдЧреЗ рдХреНрдпрд╛ рд╣реИ?


рдЗрд╕ рд╕рд╛рд▓, рд▓реЛрдХрдкреНрд░рд┐рдп рдПрдЖрд░рдПрдо рдХреЛрд░реНрдЯреЗрдХреНрд╕-рдПрдо рдкрд░рд┐рд╡рд╛рд░ рдХреЗ рд▓рд┐рдП рд░рд╕реНрдЯ рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЪреНрдЫрд╛ рд╕рдорд░реНрдерди рдорд┐рд▓рд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХрдИ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдЕрднреА рддрдХ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИрдВред рдЕрдиреНрдп рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд╕рдорд░реНрдерди рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрдВрдЧ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛рд░реНрдп


рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рднрд╛рд╖рд╛ рдореЗрдВ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдореВрд░реНрдд рдХреЛ рдПрдореНрдмреЗрдб рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛: async/await ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдХреЛрдб рдореЗрдВ рднреА рдорд╛рдирдХ рдЬрдВрдЧ рдореБрд╣рд╛рд╡рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ, рдЖрдкрдХреЛ рдЕрдХреНрд╕рд░ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдЕрдиреБрд░реЛрдз рдХрд╛ рдЬрд╡рд╛рдмред рдпрджрд┐ рдХреЛрдб рд╕рдордХрд╛рд▓рд┐рдХ рд╣реИ, рддреЛ рдХрд╛рдо рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛: рдкреНрд░реЛрд╕реЗрд╕рд░ рдХрд╛ рдХреЛрд░ рдЬрд┐рд╕ рдкрд░ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬрдм рддрдХ рдХреЛрдИ рдЕрдиреБрд░реЛрдз рдирд╣реАрдВ рдЖрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдХреЛрдб рдореЗрдВ, рдРрд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕реНрдЯреИрдВрдбрдмрд╛рдп рдореЛрдб рдореЗрдВ рд░рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рд╕реАрдкреАрдпреВ рдХреЛрд░ рдмрд╛рдХреА рдХрд╛рдо рдХрд░реЗрдЧрд╛ред

рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд░рд╕реНрдЯ 2015 рдореЗрдВ рднреА рд╕рдВрднрд╡ рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рдХрдИ рдлрд╛рдпрджреЗ рд╣реИрдВред рдЙрдЪреНрдЪ-рдкреНрд░рджрд░реНрд╢рди рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ, рд╕рд░реНрд╡рд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкреНрд░рддреНрдпреЗрдХ рд╕рд░реНрд╡рд░ рд╕реЗ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХрдиреЗрдХреНрд╢рди рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИред рдЫреЛрдЯреЗ рд╕рд┐рдВрдЧрд▓-рдереНрд░реЗрдбреЗрдб рд╕реАрдкреАрдпреВ рдкрд░ рдПрдВрдмреЗрдбреЗрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд┐рдВрдЧрд▓ рдереНрд░реЗрдб рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВред

рд▓реЗрдХрд┐рди рдпреЗ рдлрд╛рдпрджреЗ рдПрдХ рдмрдбрд╝реА рдХрдореА рдХреЗ рд╕рд╛рде рд╣реИрдВ: рдРрд╕реЗ рдХреЛрдб рдХреЗ рд▓рд┐рдП, рдЙрдзрд╛рд░ рд╕рддреНрдпрд╛рдкрди рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдЧреИрд░-рдорд╛рдирдХ (рдФрд░ рдереЛрдбрд╝рд╛ рднреНрд░рдорд┐рдд) рдЬрдВрдЧ рдореБрд╣рд╛рд╡рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ async/await рдХрд╛ рд▓рд╛рдн рд╣реИред рдпрд╣ рд╕рдВрдХрд▓рдХ рдХреЛ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХреЗ рдЙрдзрд╛рд░ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдЬрд╛рдирдХрд╛рд░реА рджреЗрддрд╛ рд╣реИред

async/await рдХреАрд╡рд░реНрдб рдХреЛ рд╕рдВрд╕реНрдХрд░рдг рез.рейрез рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡реЗ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИрдВред рдЕрдзрд┐рдХрд╛рдВрд╢ рдХрд╛рдо рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдЕрдЧрд▓реЗ рд░рд┐рд▓реАрдЬ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред

рдЖрдЧреЗ рдХреНрдпрд╛ рд╣реИ?


рдкреНрд░рднрд╛рд╡реА рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рд╡рд┐рдХрд╛рд╕ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд░рд╕реНрдЯ рдЙрдЪреНрдЪ рд╕реНрддрд░ рдкрд░ рдиреЗрдЯрд╡рд░реНрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рд╡рд┐рдХрд╛рд╕ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдХрдИ рд╕рд░реНрд╡рд░ рдирд┐рдпрдорд┐рдд рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реИрдВ: URL рдХреЛ рдкрд╛рд░реНрд╕ рдпрд╛ HTTP рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдЙрдиреНрд╣реЗрдВ рдШрдЯрдХреЛрдВ рдореЗрдВ рдмрджрд▓ рджреЗрддреЗ рд╣реИрдВ - рдЖрдо рдЕрдореВрд░реНрдд рдЬреЛ рдЯреЛрдХрд░реЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд╛рдЭрд╛ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ - рддреЛ рдЙрдиреНрд╣реЗрдВ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд░реНрд╡рд░ рдФрд░ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реБрдП, рдЙрдиреНрд╣реЗрдВ рдПрдХ-рджреВрд╕рд░реЗ рд╕реЗ рдЬреЛрдбрд╝рдирд╛ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ред

рдШрдЯрдХреЛрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рдЬреНрд╡рд╛рд░ рдврд╛рдВрдЪрд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ ред

рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЙрдкрдХрд░рдг


рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЯреВрд▓ рдХреЗ рд▓рд┐рдП, рдЫреЛрдЯреЗ рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдЕрдореВрд░реНрдд рдореЗрдВ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдирд╛ рдФрд░ рдХреБрдЫ рдореМрдЬреВрджрд╛ рдЯреВрд▓ рдХреЛ рдкреЙрд▓рд┐рд╢ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред

рдХреБрдЫ рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдмреИрд╢ рдЖрджрд░реНрд╢ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЗрд╡рд▓ рдЕрдиреНрдп рд╢реЗрд▓ рдЯреВрд▓реНрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдФрд░ рдЙрдирдХреЗ рдмреАрдЪ рдбреЗрдЯрд╛ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

рд▓реЗрдХрд┐рди рдХрдИ рдЕрдиреНрдп рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрдВрдЧ рдПрдХ рдмрдврд╝рд┐рдпрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдореМрдЬреВрджрд╛ рд▓рд╛рдпрдмреНрд░реЗрд░реА рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рд░рд┐рдкрдЧреНрд░реЗрдк рдпрд╛ рд╕реАрдПрд▓рдЖрдИ рдЯреВрд▓ рдЬреИрд╕реЗ рдЬрдЯрд┐рд▓ рдЙрдкрдХрд░рдг рдмрдирд╛рддреЗ рд╣реИрдВред

рдЬрдВрдЧ рдХреЛ рдПрдХ рд░рдирдЯрд╛рдЗрдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдПрдХ рдПрдХрд▓ рд╕реНрдерд┐рд░ рдмрд╛рдЗрдирд░реА рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд╡рд┐рддрд░рдг рдХреЛ рд╕рд░рд▓ рдХрд░рддрд╛ рд╣реИред рдФрд░ рдЖрдкрдХреЛ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рд╕рд╛рд░ рдорд┐рд▓рддреЗ рд╣реИрдВ рдЬреЛ рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдирд╣реАрдВ рд╣реИрдВ, рдЬреИрд╕реЗ C рдФрд░ C ++ред

рдФрд░ рдХреНрдпрд╛ рд╕реБрдзрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрдВрдЧ? рдмреЗрд╢рдХ, рдПрдХ рднреА рдЙрдЪреНрдЪ рд╕реНрддрд░ рдХреЗ рдЕрдореВрд░реНрддред

рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рд╕рд╛рд░ рдХреЗ рд╕рд╛рде, рдПрдХ рддреИрдпрд╛рд░ рд╕реАрдПрд▓рдЖрдИ рдЬрд▓реНрджреА рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдЗрдХрдЯреНрдард╛ рд╣реЛрддрд╛ рд╣реИред

рдЗрд╕ рддрд░рд╣ рдХреЗ рдЕрдореВрд░реНрдд рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдорд╛рдирд╡ рдЖрддрдВрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╡рд┐рдлрд▓рддрд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╕реАрдПрд▓рдЖрдИ рдХреЛрдб рд╢рд╛рдпрдж рд╕рднреА рдмреИрдХрдЯреНрд░реИрдХрд┐рдВрдЧ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░ рджреЗрдЧрд╛ред рд▓реЗрдХрд┐рди рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рд╣реИред рдЖрдк рдХрд╕реНрдЯрдо рддреНрд░реБрдЯрд┐ рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред

рдорд╛рдирд╡ рдкреИрдирд┐рдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рд╛рде, рдЖрдЙрдЯрдкреБрдЯ рд╕реНрд╡рддрдГ рд╣реА рдПрд░рд░ рдбрдВрдк рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬрд╛рдПрдЧрд╛ред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╕рдорд╕реНрдпрд╛ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдФрд░ рдбрдВрдк рдлрд╝рд╛рдЗрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реВрдЪрдирд╛рддреНрдордХ рд╕рдВрджреЗрд╢ рдХреА рдкреЗрд╢рдХрд╢ рджрд┐рдЦрд╛рдИ рджреЗрдЧреАред



рд╕реАрдПрд▓рдЖрдИ рдЙрдкрдХрд░рдг рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдирд╛ рднреА рдЖрд╕рд╛рди рд╣реЛ рдЧрдпрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЙрдиреНрдлрд┐рдб рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЕрдкрдиреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╡рд╣ рдХреЗрд╡рд▓ рджреЛ рдЪреАрдЬреЗрдВ рдкреВрдЫрддрд╛ рд╣реИ:

  • рдЖрд╡реЗрджрди рдХрд╛ рдирд╛рдо рдХреНрдпрд╛ рд╣реИ?
  • рдЖрдк рдХреМрди рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреИрд░рд╛рдореАрдЯрд░ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рдЬрд┐рд╕реЗ рдЖрдк рдПрдХ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рдХреНрд░рдордмрджреНрдз рдФрд░ deserialized рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)?

рдХреЙрдиреНрдлреА рдЕрдкрдиреЗ рджрдо рдкрд░ рдмрд╛рдХреА рд╕рдм рдХреБрдЫ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдЧрд╛ред

рдЖрдЧреЗ рдХреНрдпрд╛ рд╣реИ?


рд╣рдордиреЗ CLI рдХреЗ рд▓рд┐рдП рдХрдИ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЕрдореВрд░реНрдд рдХрд┐рдпрд╛ред рд▓реЗрдХрд┐рди рд╕рд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдФрд░ рд╣реИред рд╣рдо рдЗрд╕ рддрд░рд╣ рдХреЗ рдЙрдЪреНрдЪ рд╕реНрддрд░реАрдп рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдЬрд╛рд░реА рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред

рдЬрдВрдЧ рдЙрдкрдХрд░рдг




рдЬрдм рдЖрдк рдХрд┐рд╕реА рднреА рднрд╛рд╖рд╛ рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЗрд╕рдХреЗ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ: рд╕рдВрдкрд╛рджрдХ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдирд╛ рдФрд░ рд╡рд┐рдХрд╛рд╕ рдФрд░ рд╕рдорд░реНрдерди рдХреЗ рд╕рднреА рдЪрд░рдгреЛрдВ рдореЗрдВ рдЕрдиреНрдп рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдЬрд╛рд░реА рд░рдЦрдирд╛ред

рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдПрдХ рдкреНрд░рднрд╛рд╡реА рднрд╛рд╖рд╛ рдкреНрд░рднрд╛рд╡реА рд╕рд╛рдзрдиреЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИред

Rust 2018 рдореЗрдВ рдпрд╣рд╛рдВ рдХреБрдЫ рдирдП рдЯреВрд▓ (рдФрд░ рдореМрдЬреВрджрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░) рджрд┐рдП рдЧрдП рд╣реИрдВред

рдЖрдИрдбреАрдИ рд╕рдорд░реНрдерди


рдмреЗрд╢рдХ, рдкреНрд░рджрд░реНрд╢рди рдбреЗрд╡рд▓рдкрд░ рдХреЗ рджрд┐рдорд╛рдЧ рд╕реЗ рдХрдВрдкреНрдпреВрдЯрд░ рд╕реНрдХреНрд░реАрди рддрдХ рдХреЛрдб рдХреЗ рддреНрд╡рд░рд┐рдд рдФрд░ рд╕реБрдЪрд╛рд░реВ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдБ IDE рд╕рдорд░реНрдерди рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдРрд╕реЗ рдЯреВрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬреЛ Rust рдХреЛрдб рдХреЗ рдЕрд░реНрде рдХреЗ рд▓рд┐рдП IDE рдХреЛ "рд╕рдордЭрд╛" рд╕рдХрддреЗ рд╣реИрдВ: рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЗ рдСрдЯреЛ-рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рд░реНрдердХ рд╡рд┐рдХрд▓реНрдк рд╕реБрдЭрд╛рдПрдВред

Rust 2018 рдореЗрдВ, рд╕рдореБрджрд╛рдп рдиреЗ IDE рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд┐рдпрд╛ред рд░рд╕реНрдЯ рд▓реИрдВрдЧреНрд╡реЗрдЬ рд╕рд░реНрд╡рд░ рдФрд░ рдЗрдВрдЯреЗрд▓реАрдЬ рд░рд╕реНрдЯ рдХреЗ рдЖрдЧрдорди рдХреЗ рд╕рд╛рде, рдХрдИ рдЖрдИрдбреАрдИ рдЕрдм рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд░рд╕реНрдЯ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред

рддреЗрдЬреА рд╕реЗ рд╕рдВрдХрд▓рди


рд╕рдВрдХрд▓рдХ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд╛ рдЕрд░реНрде рд╣реИ рдЗрд╕реЗ рддреЗрдЬ рдХрд░рдирд╛ред рд╣рдордиреЗ рдпрд╣реА рдХрд┐рдпрд╛ рд╣реИред

рдкрд╣рд▓реЗ, рдЬрдм рдЖрдкрдиреЗ рд░рд╕реНрдЯ рдХреНрд░реЗрдЯ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдерд╛, рддреЛ рдХрдВрдкрд╛рдЗрд▓рд░ рдиреЗ рдХреНрд░реЗрдЯ рдореЗрдВ рд╣рд░ рдПрдХ рдлрд╛рдЗрд▓ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЬреЛрдбрд╝ рджрд┐рдпрд╛ред рд╡реГрджреНрдзрд┐рд╢реАрд▓ рд╕рдВрдХрд▓рди рдЕрдм рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: рдпрд╣ рдХреЗрд╡рд▓ рдЙрди рднрд╛рдЧреЛрдВ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдмрджрд▓ рдЧрдП рд╣реИрдВред рдЕрдиреНрдп рдЕрдиреБрдХреВрд▓рди рдХреЗ рд╕рд╛рде, рдЗрд╕рдиреЗ рд░рд╕реНрдЯ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдмрд╣реБрдд рддреЗрдЬ рдмрдирд╛ рджрд┐рдпрд╛ред

rustfmt


рджрдХреНрд╖рддрд╛ рдХреЗ рд▓рд┐рдП рдпрд╣ рднреА рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рд╣рдо рдХреЛрдб рдлрд╝реЙрд░реНрдореЗрдЯрд┐рдВрдЧ рдирд┐рдпрдореЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрднреА рдмрд╣рд╕ рди рдХрд░реЗрдВ рдпрд╛ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреА рд╢реИрд▓рд┐рдпреЛрдВ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдареАрдХ рдХрд░реЗрдВред

рд░рд╕реНрдЯрдлрд╝реЗрдордЯ рдЯреВрд▓ рдЗрд╕рд╕реЗ рдорджрдж рдХрд░рддрд╛ рд╣реИ: рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╢реИрд▓реА рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреЛрдб рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕реБрдзрд╛рд░ рджреЗрдЧрд╛ (рдЬрд┐рд╕рд╕реЗ рд╕рдореБрджрд╛рдп рдЖрдо рд╕рд╣рдорддрд┐ рдкрд░ рдкрд╣реБрдВрдЪ рдЧрдпрд╛ рд╣реИ )ред Rustfmt рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕рднреА Rust рдХреЛрдб рдПрдХ рд╣реА рд╢реИрд▓реА рд╕реЗ рдореЗрд▓ рдЦрд╛рддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ C ++ рдпрд╛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП Prettier рдХрд╛ рдХреНрд▓реИрдЧ рдлреЙрд░реНрдореЗрдЯред

Clippy


рдХрднреА-рдХрднреА рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡реЛрддреНрддрдо рдкреНрд░рдерд╛рдУрдВ рдкрд░ рд╕рд▓рд╛рд╣ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреБрднрд╡реА рд╕рд▓рд╛рд╣рдХрд╛рд░ рдХреЗ рдкрд╛рд╕ рд╣реЛрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рдХреНрд▓рд┐рдкреА рдХрд░рддрд╛ рд╣реИ: рдпрд╣ рдХреЛрдб рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП рдЬрд╛рдВрдЪрддрд╛ рд╣реИ рдФрд░ рдорд╛рдирдХ рдореБрд╣рд╛рд╡рд░реЛрдВ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реИред

rustfix


рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкреБрд░рд╛рдиреЗ рдореБрд╣рд╛рд╡рд░реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдкреБрд░рд╛рдирд╛ рдХреЛрдб рдЖрдзрд╛рд░ рд╣реИ, рддреЛ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВ рдФрд░ рдХреЛрдб рдХреЛ рд╕рд╣реА рдХрд░реЗрдВ рдердХрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк рдмрд╕ рдпрд╣ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдкреВрд░реЗ рдХреЛрдбрдмреЗрд╕ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░реЗред

рдЗрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рд░рд╕реНрдЯрдлрд╝рд┐рдХреНрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдПрдХ рд╕рд╛рде Clippy рдЬреИрд╕реЗ рдЯреВрд▓ рд╕реЗ рдирд┐рдпрдо рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкреБрд░рд╛рдиреЗ рдХреЛрдб рдХреЛ Rust 2018 рдХреЗ рдореБрд╣рд╛рд╡рд░реЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИред

рдЦреБрдж рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрдВрдЧ


рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреА рджрдХреНрд╖рддрд╛ рдореЗрдВ рдХрд╛рдлреА рд╡реГрджреНрдзрд┐ рд╣реБрдИ рд╣реИред рд▓реЗрдХрд┐рди рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рднрд╛рд╖рд╛ рдореЗрдВ рдмрджрд▓рд╛рд╡ рд╕реЗ рд╣реА рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред



рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдкреНрд░рд╕реНрддрд╛рд╡рдирд╛ рдореЗрдВ рдХрд╣рд╛, рдЕрдзрд┐рдХрд╛рдВрд╢ рднрд╛рд╖рд╛ рдкрд░рд┐рд╡рд░реНрддрди рдореМрдЬреВрджрд╛ рд░рд╕реНрдЯ рдХреЛрдб рдХреЗ рд╕рд╛рде рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдВрдЧрдд рд╣реИрдВред рдпреЗ рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрди Rust 2018 рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рд╡реЗ рдХреБрдЫ рднреА рдирд╣реАрдВ рддреЛрдбрд╝рддреЗ рд╣реИрдВ, рд╡реЗ рдХрд┐рд╕реА рднреА Rust рдХреЛрдб рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ ... рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдкреБрд░рд╛рдиреЗ рдореЗрдВ рднреАред

рдЖрдЗрдП рдЙрди рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рджреЗрдЦреЗрдВ рдЬреЛ рд╕рднреА рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЬрд╛рддреЗ рд╣реИрдВред рдлрд┐рд░ Rust 2018 рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рдПрдХ рдЫреЛрдЯреА рд╕реВрдЪреА рджреЗрдЦреЗрдВред

рд╕рднреА рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдирдИ рд╕реБрд╡рд┐рдзрд╛рдПрдБ


рдпрд╣рд╛рдБ рдирдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬреЛ рднрд╛рд╖рд╛ рдХреЗ рд╕рднреА рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рд╣реИрдВ (рдпрд╛ рд╣реЛрдВрдЧреЗ)ред

рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рдЙрдзрд╛рд░ рд╕рддреНрдпрд╛рдкрди


рдЬрдВрдЧ рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рдлрд╛рдпрджрд╛ рдЗрд╕рдХрд╛ рдЙрдзрд╛рд░ рд╕рддреНрдпрд╛рдкрди рд╣реИред рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреЛрдб рдореЗрдореЛрд░реА рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рднреА рд░реВрдмреА рдХреЗ рд▓рд┐рдП newbies рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рд╕реБрд╡рд┐рдзрд╛ рд╣реИред

рдирдИ рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЛ рд╕реАрдЦрдиреЗ рдореЗрдВ рдХрдард┐рдирд╛рдИ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред рд▓реЗрдХрд┐рди рдПрдХ рдФрд░ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ ... рдкрд░реАрдХреНрд╖рдг рдЙрдзрд╛рд░ рдХрднреА-рдХрднреА рдХреЛрдб рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рджреЗрддрд╛ рд╣реИ рдЬреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╕реНрдореГрддрд┐ рд╕реБрд░рдХреНрд╖рд╛ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдордЭрддрд╛ рд╣реИред


рдЖрдк рдПрдХ рдЪрд░ рдХреЛ рдЙрдзрд╛рд░ рдирд╣реАрдВ рд▓реЗ рд╕рдХрддреЗ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрдзрд╛рд░ рд╣реИ

рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реЛрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЙрдзрд╛рд░ рд▓реЗрдиреЗ рд╡рд╛рд▓рд╛ рдЬреАрд╡рдирдХрд╛рд▓ рдЕрдкрдиреЗ рдХреНрд╖реЗрддреНрд░ рдХреЗ рдЕрдВрдд рддрдХ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдерд╛ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрдд рддрдХ рдЬрд┐рд╕рдореЗрдВ рдЪрд░ рд╕реНрдерд┐рдд рд╣реИред

рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдерд╛ рдХрд┐ рднрд▓реЗ рд╣реА рдЪрд░ рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╕рдорд╛рдкреНрдд рдХрд░ рджреЗрддрд╛ рд╣реИ рдФрд░ рдЕрдм рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЕрдиреНрдп рдЪрд░ рдЕрднреА рднреА рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрдд рддрдХ рдЗрд╕ рдореВрд▓реНрдп рддрдХ рдкрд╣реБрдВрдЪ рд╕реЗ рд╡рдВрдЪрд┐рдд рд╣реИрдВред

рд╕реНрдерд┐рддрд┐ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдЪреЗрдХ рдХреЛ рдЕрдзрд┐рдХ рд╕реНрдорд╛рд░реНрдЯ рдмрдирд╛ рджрд┐рдпрд╛ред рдЕрдм рд╡рд╣ рджреЗрдЦрддреА рд╣реИ рдХрд┐ рдЬрдм рдЪрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореВрд▓реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ рд╣реИред рдЙрд╕рдХреЗ рдмрд╛рдж, рдпрд╣ рдбреЗрдЯрд╛ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдЕрд╡рд░реБрджреНрдз рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред



рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ Rust 2018 рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИ, рд▓реЗрдХрд┐рди рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЕрдиреНрдп рд╕рднреА рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ред рдЬрд▓реНрдж рд╣реА рд╣рдо рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдФрд░ рд▓рд┐рдЦреЗрдВрдЧреЗред

рд╕реНрдерд┐рд░ рдЬрдВрдЧ рдореЗрдВ рдкреНрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рдореИрдХреНрд░реЛрдЬрд╝


рд░рд╕реНрдЯ 1.0 рд╕реЗ рдкрд╣рд▓реЗ рд░рд╕реНрдЯ рдХреЛ рдореИрдХреНрд░реЛ рдерд╛ред рд▓реЗрдХрд┐рди рд░рд╕реНрдЯ 2018 рдореЗрдВ, рдЧрдВрднреАрд░ рд╕реБрдзрд╛рд░ рдХрд┐рдП рдЧрдП рдереЗ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рдореИрдХреНрд░реЛрдЬрд╝ рджрд┐рдЦрд╛рдИ рджрд┐рдПред рд╡реЗ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдХреЛ рдЬрдВрдЧ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред

рдЬрдВрдЧ 2018 рджреЛ рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рдореИрдХреНрд░реЛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ:

рдлрдВрдХреНрд╢рди рдореИрдХреНрд░реЛрдЬрд╝


рдлрд╝рдВрдХреНрд╢рди-рдЬреИрд╕реЗ рдореИрдХреНрд░реЛрдЬрд╝ рдЖрдкрдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХреА рддрд░рд╣ рджрд┐рдЦрдиреЗ рд╡рд╛рд▓реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдВрдХрд▓рди рд╕рдордп рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рд╡реЗ рдПрдХ рдХреЛрдб рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рджреВрд╕рд░реЗ рдХреЛ рджреЗрддреЗ рд╣реИрдВ, рдЬреЛ рд╕рдВрдХрд▓рдХ рдлрд┐рд░ рдмрд╛рдЗрдирд░реА рдореЗрдВ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рддрд╛ рд╣реИред

рд╡реЗ рдкрд╣рд▓реЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдореЗрдВ рдереЗ, рд▓реЗрдХрд┐рди рд╕реАрдорд┐рдд рдХреЗ рд╕рд╛рдеред рдПрдХ рдореИрдХреНрд░реЛ рдХреЗрд╡рд▓ рдореИрдЪ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЖрдиреЗ рд╡рд╛рд▓реЗ рдХреЛрдб рдореЗрдВ рд╕рднреА рдЯреЛрдХрди рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрд╕рдХреА рдкрд╣реБрдВрдЪ рдирд╣реАрдВ рдереАред

рд▓реЗрдХрд┐рди рдкреНрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рдореИрдХреНрд░реЛрдЬрд╝ рдХреЗ рд╕рд╛рде, рдЖрдкрдХреЛ рдкрд╛рд░реНрд╕рд░ рдХреЗ рд╕рдорд╛рди рдЗрдирдкреБрдЯ рдорд┐рд▓рддрд╛ рд╣реИ: рдЯреЛрдХрди рдХреА рд╕рдорд╛рди рдзрд╛рд░рд╛ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдк рдХрд╛рд░реНрдпреЛрдВ рдХреА рддрд░рд╣ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдореИрдХреНрд░реЛрдЬрд╝ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред

рд╡рд┐рд╢реЗрд╖рддрд╛-рдЬреИрд╕реЗ рдореИрдХреНрд░реЛрдЬрд╝


рдпрджрд┐ рдЖрдк рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреИрд╕реА рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд╕рдЬреНрдЬрд╛рдХрд╛рд░реЛрдВ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ, рддреЛ рд╡рд┐рд╢реЗрд╖рддрд╛ рдореИрдХреНрд░реЛрдЬрд╝ рдмрд╣реБрдд рд╕рдорд╛рди рд╣реИрдВред рд╡реЗ рдЖрдкрдХреЛ рд░рд╕реНрдЯ рдХреЛрдб рдХреЗ рдЯреБрдХрдбрд╝реЗ рдХреЛ рдПрдиреЛрдЯреЗрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдкреВрд░реНрд╡-рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдХреБрдЫ рдФрд░ рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

derive рдореИрдХреНрд░реЛ рдмрд╕ рдпрд╣реА рдХрд░рддрд╛ рд╣реИред рдЬрдм рдЖрдк рдЗрд╕реЗ рдПрдХ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдКрдкрд░ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рд╕рдВрдХрд▓рдХ рдЙрд╕ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИ (рдЯреЛрдХрди рдХреА рд╕реВрдЪреА рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж) рдФрд░ рдЗрд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдпрд╣ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╕реЗ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдПрдХ рдмреБрдирд┐рдпрд╛рджреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЬреЛрдбрд╝рддрд╛ рд╣реИред

рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдПрд░реНрдЧреЛрдиреЛрдорд┐рдХ рдЙрдзрд╛рд░


рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдмрджрд▓рд╛рд╡ рд╣реИред

рдкрд╣рд▓реЗ, рдпрджрд┐ рдЖрдк рдХреБрдЫ рдЙрдзрд╛рд░ рд▓реЗрдирд╛ рдЪрд╛рд╣рддреЗ рдереЗ рдФрд░ рдорд┐рд▓рд╛рди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рдереЗ, рддреЛ рдЖрдкрдХреЛ рдХреБрдЫ рдЕрдЬреАрдм рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛:



рдЕрдм, &Some(ref s) рдмрдЬрд╛рдп &Some(ref s) рд╣рдо рдмрд╕ Some(s) рд▓рд┐рдЦрддреЗ рд╣реИрдВред

рдирдИ Rust 2018 рдХреЗ рдлреАрдЪрд░реНрд╕


рд░рд╕реНрдЯ 2018 рдХрд╛ рд╕рдмрд╕реЗ рдЫреЛрдЯрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИред рдпрд╣рд╛рдВ Rust 2018 рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рд╕реЗрдЯ рд╣реИред

рдХреАрд╡рд░реНрдб


Rust 2018 рдиреЗ рдХреБрдЫ рдХреАрд╡рд░реНрдб рдЬреЛрдбрд╝реЗ:

  • try
  • async/await

рдпреЗ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдЕрднреА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реБрдИ рд╣реИрдВ, рд▓реЗрдХрд┐рди Rust 1.31 рдореЗрдВ рдХреАрд╡рд░реНрдб рдЬреЛрдбрд╝реЗ рдЧрдП рд╣реИрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╣рдореЗрдВ рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╕рдордп рдирдП рдХреАрд╡рд░реНрдб (рдЬреЛ рдПрдХ рдЕрд╕рдВрдЧрдд рдкрд░рд┐рд╡рд░реНрддрди рдмрди рдЬрд╛рдПрдВрдЧреЗ) рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдореЙрдбреНрдпреВрд▓рд░ рдкреНрд░рдгрд╛рд▓реА


рдиреНрдпреВрд╕реНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдбрд╝рд╛ рджрд░реНрдж рдЬрдВрдЧ рдХреЗ рд▓рд┐рдП рдореЙрдбреНрдпреВрд▓рд░ рдкреНрд░рдгрд╛рд▓реА рд╣реИред рдФрд░ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдХреНрдпреЛрдВ рд╣реИред рдпрд╣ рд╕рдордЭрдирд╛ рдХрдард┐рди рдерд╛ рдХрд┐ рд░рд╕реНрдЯ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдХреНрдпреЛрдВ рдЪреБрдирддрд╛ рд╣реИред рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдкрде рддрдВрддреНрд░ рдореЗрдВ рдХреБрдЫ рдмрджрд▓рд╛рд╡ рдХрд┐рдПред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдиреЗ рдПрдХ рд░реИрдХ рдЖрдпрд╛рдд рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдЖрдк рдЗрд╕реЗ рд╢реАрд░реНрд╖ рд╕реНрддрд░ рдкрд░ рдкрде рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рдХрд┐рд╕реА рдХреЛрдб рдХреЛ рдПрдХ рд╕рдмрдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЕрдм рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

 // top level module extern crate serde; // this works fine at the top level impl serde::Serialize for MyType { ... } mod foo { // but it does *not* work in a sub-module impl serde::Serialize for OtherType { ... } } 

рдПрдХ рдЕрдиреНрдп рдЙрджрд╛рд╣рд░рдг рдЙрдкрд╕рд░реНрдЧ рд╣реИ ::, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЯреЛрдХрд░рд╛ рдФрд░ рдмрд╛рд╣рд░реА рдЯреЛрдХрд░рд╛ рджреЛрдиреЛрдВ рдХреА рдЬрдбрд╝ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╕рдордЭрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рд╕рд╛рдордиреЗ рдХреНрдпрд╛ рд╣реИред

рд╣рдордиреЗ рдЗрд╕реЗ рдФрд░ рд╕реНрдкрд╖реНрдЯ рдХрд┐рдпрд╛ред рдЕрдм рдпрджрд┐ рдЖрдк рдореВрд▓ рдЯреЛрдХрд░реЗ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЙрдкрд╕рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ crate::ред рдпрд╣ рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП рд╕реБрдзрд╛рд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред

рдпрджрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдХреЛрдб Rust 2018 рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рддреЛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдЖрдкрдХреЛ рдЦрд╛рддрд╛ рдкрдереЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдРрд╕рд╛ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред Cargo.toml рдореЗрдВ рд╡рд░реНрдЬрди рд╕реНрдкреЗрд╕рд░ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдмрд╕ рдЗрд╕реЗ рдЪрд▓рд╛рдПрдВ cargo fixрдФрд░ rustfixрдЖрд╡рд╢реНрдпрдХ рдмрджрд▓рд╛рд╡ рдХрд░реЗрдВред

рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА


рднрд╛рд╖рд╛ рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рднреА рдЬрд╛рдирдХрд╛рд░реА рд░рд╕реНрдЯ 2018 рдЧрд╛рдЗрдб рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИ ред

Source: https://habr.com/ru/post/hi432564/


All Articles