рдореЛрдЬрд╝рд┐рд▓рд╛ рд╕рднреА рдЙрдкрдХрд░рдгреЛрдВ, рдХрдВрдкреНрдпреВрдЯрд░ рдФрд░ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП WASI рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реИ

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


рд╕рднреА рдкрд░ рд╢рд╛рд╕рди рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдкреНрд░рд╛рд░реВрдк



рдореЛрдЬрд╝рд┐рд▓рд╛ рдиреЗ рдЗрд╕ рд╕рдкреНрддрд╛рд╣ WASI (WebAssembly System Interface) рдирд╛рдо рдХрд╛ рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкреЗрд╢ рдХрд┐рдпрд╛ рд╣реИ, рдЬреЛ рдпрд╣ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде WebAssembly рдХреЛрдб рдХреИрд╕реЗ рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕рдлрд▓ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдУрд░реЗрдХрд▓ рдЬрд╛рд╡рд╛ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХреЗ рд╕рдорд╛рди рдХрд╛рд░реНрдп рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХреБрд╢рд▓рддрд╛ рд╕реЗ рдФрд░ рдЙрдиреНрдирдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рдеред


WebAssembly (WASM) рдПрдХ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХреЗ рд▓рд┐рдП рдПрдХ рджреНрд╡рд┐рдЖрдзрд╛рд░реА рдЕрдиреБрджреЗрд╢ рдкреНрд░рд╛рд░реВрдк рд╣реИ рдЬреЛ рд╡рд┐рднрд┐рдиреНрди рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдкрд░ рдЪрд▓ рд╕рдХрддрд╛ рд╣реИред C / C ++, Go, Rust рдЬреИрд╕реА рдХрдИ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдХреЛрдб рдХреЛ WASM рдХреЛрдб рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред


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


WASM + WASI


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


рдЬрд╛рд╡рд╛ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди (рдЬреЗрд╡реАрдПрдо) рдПрдХ рд╣реА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЬрд╛рд╡рд╛ рдХреЛрдб рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд▓рдЧрдЗрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐ рднрд╛рд╖рд╛ рдХреЗ рд▓рдЪреАрд▓реЗрдкрди, рдЬреИрд╕реЗ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд WebAssembly рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЛ GraalVM рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬрд╛рд╡рд╛ рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, Oracle рдХреА рдмреМрджреНрдзрд┐рдХ рд╕рдВрдкрджрд╛ рдХреЗ рдЙрд▓реНрд▓рдВрдШрди рдХреЗ рджрд╛рд╡реЛрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдШрдЯрдирд╛рдУрдВ рдХреЗ рдХрд╛рд░рдг рдЬрд╛рд╡рд╛ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдЕрднреА рднреА рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рд╣реИред


WASM рдкреНрд░рд╛рд░реВрдк, рд╕реНрдореГрддрд┐ рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП рд╕реБрд░рдХреНрд╖рд┐рдд рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЬрд╛рд╡рд╛ рдПрдкреНрд▓реЗрдЯреНрд╕ рдкрд░ рдПрдХ рдлрд╛рдпрджрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рд╡рд╛рд╣ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдкрд░ рд╣рдорд▓рд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ C / C ++ рдФрд░ Rust рдХреЗ рд╕рд╛рде рднреА рдЕрдЪреНрдЫрд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред


рдореЛрдЬрд╝рд┐рд▓рд╛ рдХреА рд╡реЗрдмрдЕрд╕реНрдкреЗрдореНрд╕ рдЯреАрдо рд▓реАрдбрд░, рдЯрд┐рд▓ рд╢реНрдирд╛рдЗрдбрд░, рдЯреНрд╡рд┐рдЯрд░ рдкрд░ WebAssembly рдФрд░ Java рдХреЗ рдмреАрдЪ рдХреЗ рдЕрдВрддрд░ рдХреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдмрддрд╛рддреА рд╣реИ: "WebAssembly рдХреЛ рд▓рдШреБ рдЙрдкрдХрд░рдгреЛрдВ рд╕реЗ рд╡рд┐рд╢рд╛рд▓ рд╕рд░реНрд╡рд░ рд╕рдореВрд╣реЛрдВ рдпрд╛ CDNs рдХреЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдкреНрд░рд╛рд░реВрдк рдЬрд╛рд╡рд╛ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рднрд╛рд╖рд╛-рд╕реНрд╡рддрдВрддреНрд░ рд╣реИред рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдмрд╣реБрдд рдХрдо рд╕рдВрд╕рд╛рдзрди рдЧрд╣рди рд╣реИред "


рдпрджрд┐ WASI рдХреЗ рд╕рдВрднрд╛рд╡рд┐рдд рд▓рд╛рдн рдЖрдкрдХреЗ рд▓рд┐рдП рдЕрднреА рддрдХ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдпрд╣рд╛рдВ рдбреЙрдХрд░ рд╕реЛрд▓реЛрдорди рд╣рд╛рдЗрдХреНрд╕ рдХреЗ рд░рдЪрдирд╛рдХрд╛рд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдиреЗ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрд╣рд╛ рд╣реИ: тАЬрдпрджрд┐ WASM + WASI 2008 рдореЗрдВ рдЕрд╕реНрддрд┐рддреНрд╡ рдореЗрдВ рдерд╛, рддреЛ рд╣рдореЗрдВ рдбреЙрдХрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдРрд╕рд╛ рдирд╣реАрдВ рд╣реБрдЖ рд╣реЛрдЧрд╛ред рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб WebAssembly рдЗрд╕рдХреЗ рд▓рд┐рдП рднрд╡рд┐рд╖реНрдп рд╣реИред рдХрдореНрдкреНрдпреВрдЯрд┐рдВрдЧред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдорд╛рдирдХреАрдХреГрдд рд╕рд┐рд╕реНрдЯрдо рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдЕрднрд╛рд╡ рдерд╛ред рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ WASI рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ! "


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


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

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


All Articles