Design: рдкреНрд░рд╕реНрддрд╛рд╡: рдЕрдВрддрд░-рднрд╛рд╖рд╛ рдкреНрд░рдХрд╛рд░ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдЬреЛрдбрд╝реЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 1 рдордИ 2019  ┬╖  61рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: WebAssembly/design

WebAssembly рдХрд┐рд╕реА рджрд┐рдП рдЧрдП (рдЖрдорддреМрд░ рдкрд░ JS) рджреБрднрд╛рд╖рд┐рдпрд╛ рд╕реЗ рдордирдорд╛рдиреА рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдХреЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдм рдХрдИ рдордирдорд╛рдиреА рднрд╛рд╖рд╛рдУрдВ рдХреЛ рдПрдХ рд╕рд╛рде рдЬреЛрдбрд╝рдиреЗ рдХреА рдмрд╛рдд рдЖрддреА рд╣реИ рддреЛ рдЗрд╕рдореЗрдВ рдХрдИ рдкреНрд░рдореБрдЦ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЕрднрд╛рд╡ рд╣реЛрддрд╛ рд╣реИред

рдЗрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рднрд╛рд╖рд╛-рдЕрдЬреНрдЮреЗрдп рдкреНрд░рдХрд╛рд░ рдХреА рдкреНрд░рдгрд╛рд▓реА рд╣реИред рдореИрдВ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдПрдХ рдпрд╛ рдХрдИ рдРрд╕реА рдкреНрд░рдгрд╛рд▓реА (рдУрдВ) рдХреЛ WebAssembly рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПред

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

рднрд╛рд╖рд╛ рдЗрдВрдЯрд░рдСрдкрд░реЗрдмрд┐рд▓рд┐рдЯреА рдХреА рдкрд░рд╡рд╛рд╣ рдХреНрдпреЛрдВ рдХрд░реЗрдВ?

рдирд┐рдореНрди рднрд╛рд╖рд╛-рд╕реЗ-рднрд╛рд╖рд╛ рдмрд╛рдзрд╛рдУрдВ рдХреЗ рд▓рд╛рднреЛрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:

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

  • рдЫреЛрдЯреА рднрд╛рд╖рд╛рдУрдВ рдХреЛ рдЕрдкрдирд╛рдирд╛ рдЖрд╕рд╛рди: рд╡рд░реНрддрдорд╛рди рдмрд╛рдЬрд╝рд╛рд░ рдореЗрдВ, рдХреЙрд░реНрдкреЛрд░реЗрдЯ рд╕рдорд░реНрдерди рдХреЗ рдмрд┐рдирд╛ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХрд░реНрд╖рдг рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЕрдХреНрд╕рд░ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрддрд╛ рд╣реИред рдирдИ рднрд╛рд╖рд╛рдУрдВ (рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдбреА рдЬреИрд╕реА рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд╢реЛрдзрди рдХреЗ рд╡рд░реНрд╖реЛрдВ рдХреЗ рд╕рд╛рде) рдХреЛ рдмрдбрд╝реЗ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХ рддрдВрддреНрд░ рд╡рд╛рд▓реА рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзрд╛ рдХрд░рдиреА рдкрдбрд╝рддреА рд╣реИ, рдФрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рдЕрдкрдиреА рдХрдореА рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред рднрд╛рд╖рд╛ рдЗрдВрдЯрд░рдСрдкрд░реЗрдмрд┐рд▓рд┐рдЯреА рдЙрдиреНрд╣реЗрдВ рдореМрдЬреВрджрд╛ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХ рддрдВрддреНрд░ рдЬреИрд╕реЗ рдкрд╛рдпрдерди рдпрд╛ рдЬрд╛рд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧреАред

  • рдмреЗрд╣рддрд░ рднрд╛рд╖рд╛-рдЕрдЬреНрдЮреЗрдп рдЯреВрд▓рдЪреЗрди : рдЕрднреА, рдЕрдзрд┐рдХрд╛рдВрд╢ рднрд╛рд╖рд╛рдУрдВ рдХреА рдЕрдкрдиреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд▓реЛрдбрд┐рдВрдЧ рд╕реНрдХреАрдо рдФрд░ рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░ (рдпрд╛, рд╕реА/рд╕реА ++ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХрдИ рдЧреИрд░-рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡рд╛рд▓реЗ) рд╣реИрдВред рдПрдХ рднрд╛рд╖рд╛-рдЕрдЬреНрдЮреЗрдп рдкрд░рд┐рдпреЛрдЬрдирд╛ рдирд┐рд░реНрдорд╛рддрд╛ рд▓рд┐рдЦрдирд╛ рдХрдард┐рди рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрди рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдЕрдХреНрд╕рд░ рд╕реВрдХреНрд╖реНрдо рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рд╣реЛрддреА рд╣реИрдВ, рдФрд░ рдПрдмреАрдЖрдИ рдЕрд╕рдВрдЧрддрддрд╛рдПрдВ рд╣реЛрддреА рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЦрдВрдб рдкрд░рд┐рдпреЛрдЬрдирд╛-рд╡реНрдпрд╛рдкреА рд╕рдорд╛рдзрд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдПрдХ рдордЬрдмреВрдд рдЕрдВрддрд░-рднрд╛рд╖рд╛ рдкреНрд░рдХрд╛рд░ рдкреНрд░рдгрд╛рд▓реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдЫреЛрдЯреЗ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛ рджреЗрдЧреА, рдЬрд┐рд╕реЗ рдПрдирдкреАрдПрдо рдЬреИрд╕реЗ рд╕рдорд╛рдзрд╛рди рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

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

рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ

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

рдореИрдВ рдЗрд╕ рдзрд╛рд░рдгрд╛ рдХреЗ рддрд╣рдд рд▓рд┐рдЦ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдмреАрдЪ рдкрд╛рд░рд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдПрдиреЛрдЯреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдк рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рд╕рдЦреНрддреА рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдпрд╣ рдЬрд╛рдВрдЪ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ рдХрд┐ рднрд╛рд╖рд╛рдПрдВ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдЕрдкрдиреА рд░реИрдЦрд┐рдХ рдпрд╛ рдкреНрд░рдмрдВрдзрд┐рдд рд╕реНрдореГрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░рддреА рд╣реИрдВред

рд╡рд╛рд╕рдо рд╕реЗрдЯрд┐рдВрдЧ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рдкреНрд░рдгрд╛рд▓реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА:

1 - рд╕реБрд░рдХреНрд╖рд╛

  • рдЯрд╛рдЗрдк-рд╕реЗрдл: рдХреИрд▓реА рдХреЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ рдХреЙрд▓рд░ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдСрдмреНрдЬреЗрдХреНрдЯ-рдХреНрд╖рдорддрд╛рдУрдВ-рд╢реИрд▓реАред

    • рдХреЙрд▓ рдХреЗ рдЕрдВрдд рдореЗрдВ рдореЗрдореЛрд░реА рдХреЛ "рднреВрд▓ рдЬрд╛рдирд╛" рдЪрд╛рд╣рд┐рдПред рдПрдХ рдХреЙрд▓ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреЛ рдХреЙрд▓рд░ рдХреЗ рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ, рд╡рд╛рдкрд╕ рд▓реМрдЯрдиреЗ рдФрд░ рдлрд┐рд░ рдЙрд╕ рдбреЗрдЯрд╛ рдХреЛ рдХрд┐рд╕реА рднреА рд░реВрдк рдореЗрдВ рдлрд┐рд░ рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

2 - рдУрд╡рд░рд╣реЗрдб

  • рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдЗрдВрдЯрд░-рдореЙрдбреНрдпреВрд▓ рдХреЙрд▓ рдХрд░рдиреЗ рдореЗрдВ рд╕рд╣рдЬ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд░реЗрдВрдбрд░ рд▓реВрдк рдореЗрдВред

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

3 - рд╕рдВрд░рдЪрдирд╛ рд░реЗрдЦрд╛рдВрдХрди

  • рдЯрд╛рдЗрдк рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╕рдВрд░рдЪрдирд╛рдПрдВ, рд╡реИрдХрд▓реНрдкрд┐рдХ рдкреЙрдЗрдВрдЯрд░реНрд╕, рд╡реЗрд░рд┐рдПрдмрд▓-рд▓реЗрдВрде рдПрд░реЗ, рд╕реНрд▓рд╛рдЗрд╕ рдЖрджрд┐ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред

    • рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, рдХреЙрд▓рд░ 1 рдФрд░ 2 рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХрд╛ рд╕рдореНрдорд╛рди рдХрд░рддреЗ рд╣реБрдП рд╕реНрдореГрддрд┐ рдореЗрдВ рдмрд┐рдЦрд░реЗ рд╣реБрдП рдСрдмреНрдЬреЗрдХреНрдЯ рдЧреНрд░рд╛рдлрд╝ рднреЗрдЬрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

4 - рд╕рдВрджрд░реНрдн рдкреНрд░рдХрд╛рд░

  • рдореЙрдбреНрдпреВрд▓ рд╕рдВрд░рдЪрдирд╛ рдЧреНрд░рд╛рдлрд╝ рдХреЗ рднреАрддрд░ рдЧрд╣рд░реЗ рдиреЗрд╕реНрдЯреЗрдб рд╕рдВрджрд░реНрдн рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

5 - рдореЗрдореЛрд░реА рд▓реЗрдЖрдЙрдЯ рдХреЗ рдмреАрдЪ рдкреБрд▓

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

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

    • рдЕрддрд┐рд░рд┐рдХреНрдд рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреИрд╢рд┐рдВрдЧ рдФрд░ рдЕрдиреНрдп рдЕрдиреБрдХреВрд▓рди рд░рдгрдиреАрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рднреА рдЕрдиреБрдорддрд┐ рджреЗ рд╕рдХрддреА рд╣реИред

    • рджреЛ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдмреАрдЪ рдбреЗрдЯрд╛ рдкрд╛рд╕ рдХрд░рддреЗ рд╕рдордп рд░реВрдкрд╛рдВрддрд░рдг рдХрд╛рд░реНрдп рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд▓рд┐рдП рдкрд╛рд░рджрд░реНрд╢реА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрдм рддрдХ рдХрд┐ рд╕рд┐рдореЗрдВрдЯрд┐рдХ рдкреНрд░рдХрд╛рд░ рд╕рдВрдЧрдд рд╣реЛрдВред

6 - рд╕рдВрдХрд▓рди-рд╕рдордп рддреНрд░реБрдЯрд┐ рдкреНрд░рдмрдВрдзрди

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

7 - рдЕрдВрддрд░-рднрд╛рд╖рд╛ рдмрд╛рддрдЪреАрдд рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдкреЙрдЗрдВрдЯ рдкреНрд░рджрд╛рди рдХрд░реЗрдВ

  • рдпрд╣ рдХрд╣рд╛ рд╕реЗ рдЖрд╕рд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ wasm рдХреЛ рд╕рднреА рдХрдВрдкрд╛рдЗрд▓рд░ рд▓реЗрдЦрдХреЛрдВ рдХреЛ рдПрдХ рд╕рдВрдХреЗрдд рднреЗрдЬрдирд╛ рдЪрд╛рд╣рд┐рдП, рдХрд┐ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдмреАрдЪ рдЗрдВрдЯрд░рдСрдкрд░реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдорд╛рдирдХ рддрд░реАрдХрд╛ рдПрдХреНрд╕ рд╣реИред рд╕реНрдкрд╖реНрдЯ рдХрд╛рд░рдгреЛрдВ рд╕реЗ, рднрд╛рд╖рд╛ рдЗрдВрдЯрд░рдСрдкрд░реЗрдмрд┐рд▓рд┐рдЯреА рдХреЗ рд▓рд┐рдП рдХрдИ рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзреА рдорд╛рдирдХреЛрдВ рдХрд╛ рд╣реЛрдирд╛ рд╡рд╛рдВрдЫрдиреАрдп рдирд╣реАрдВ рд╣реИред

рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди

рдореИрдВ рдЬреЛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ рд╡рд╣ @kentonv рджреНрд╡рд╛рд░рд╛ Webassembly рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╣реИред

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

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЫрджреНрдо-рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдЗрд╕ рдмрд╛рдд рдХрд╛ рдЕрдВрджрд╛рдЬрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ рдХрд┐ рдпреЗ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреИрд╕реА рджрд┐рдЦреЗрдЧреА; рдпрд╣ рд╡реЗрдмрдЖрдИрдбреАрдПрд▓ рдкреНрд░рд╕реНрддрд╛рд╡ рд╕реЗ рдЕрдиреБрдорд╛рдирд┐рдд рдФрд░ рдЕрддреНрдпрдзрд┐рдХ рдкреНрд░реЗрд░рд┐рдд рд╣реИ, рдФрд░ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреА рд╡рд┐рд╕реНрддреГрдд рд╕реВрдЪреА рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рддрдХрдиреАрдХреА рдЪреБрдиреМрддрд┐рдпреЛрдВ рдкрд░ рдЕрдзрд┐рдХ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред

Capnproto рдмрд╛рдзреНрдпрдХрд╛рд░реА рдирд┐рд░реНрджреЗрд╢ рд╕рднреА рдПрдХ рдирдП Cap'n'proto рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдП

Cap'n'proto рдкреНрд░рдХрд╛рд░

рдорд╛рдирдХ рдХреЛ рдХреИрдкрдирдкреНрд░реЛрдЯреЛ рдХреА рд╕реНрдХреАрдорд╛ рднрд╛рд╖рд╛ рдХреЗ рдЖрдВрддрд░рд┐рдХ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдирд┐рдореНрди Capnproto рдкреНрд░рдХрд╛рд░:

```рдХреИрдк'рдПрди рдкреНрд░реЛрдЯреЛ
рд╕рдВрд░рдЪрдирд╛ рд╡реНрдпрдХреНрддрд┐ {
рдирд╛рдо @ 0 : рдкрд╛рда;
рдЬрдиреНрдорддрд┐рдерд┐ @3 :рддрд┐рдерд┐;

рдИрдореЗрд▓ @1 :рдкрд╛рда;
рдлреЛрди @ 2 : рд╕реВрдЪреА (рдлреЛрди рдирдВрдмрд░);

рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдлреЛрди рдирдВрдмрд░ {
рд╕рдВрдЦреНрдпрд╛ @ 0 : рдкрд╛рда;
@1 рдЯрд╛рдЗрдк рдХрд░реЗрдВ: рдЯрд╛рдЗрдк рдХрд░реЗрдВ;

enum Type {
  mobile @0;
  home @1;
  work @2;
}

}
}

рд╕рдВрд░рдЪрдирд╛ рджрд┐рдирд╛рдВрдХ {
рд╡рд░реНрд╖ @ 0 : Int16;
рдорд╣реАрдирд╛ @ 1 : UInt8;
рджрд┐рди @2 :UInt8;
}

might be represented as

```wasm
(<strong i="32">@capnproto</strong> type $Date (struct
    (field "year" Int16)
    (field "month" UInt8)
    (field "day" UInt8)
))
(<strong i="33">@capnproto</strong> type $Person_PhoneNumber_Type (enum 0 1 2))
(<strong i="34">@capnproto</strong> type $Person_PhoneNumber (struct
    (field "number" Text)
    (field "type" $Person_PhoneNumber_Type)
))
(<strong i="35">@capnproto</strong> type $Person (struct
    (field "name" Text)
    (field "email" Text)
    (field "phones" (generic List $Person_PhoneNumber))
    (field "birthdate" $Data)
))

рд░реИрдЦрд┐рдХ рд╕реНрдореГрддрд┐ рд╕реЗ рдХреНрд░рдорд╛рдВрдХрди

Capnproto рд╕рдВрджреЗрд╢ рджреЛ рдкреНрд░рдХрд╛рд░ рдХреЗ рдбреЗрдЯрд╛ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ: рдЦрдВрдб (рдХрдЪреНрдЪреЗ рдмрд╛рдЗрдЯреНрд╕), рдФрд░ рдХреНрд╖рдорддрд╛рдПрдВред

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

(рд░рдирдЯрд╛рдЗрдо рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдВрдЪ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдмреЗрд╣рддрд░ рджреГрд╖реНрдЯрд┐рдХреЛрдг рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред)

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХреНрд░рдорд╛рдВрдХрди рдЧрдгрдирд╛ рдЧреЛрдВрдж рдХреЛрдб рдореЗрдВ рд╣реЛрдЧреА, рдпрджрд┐ рдмрд┐рд▓реНрдХреБрд▓ рднреА ( рдЧреЛрдВрдж рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рджреЗрдЦреЗрдВ)ред

рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдСрдкрд░реЗрдЯрд░реНрд╕

| рдСрдкрд░реЗрдЯрд░ | рддрддреНрдХрд╛рд▓ | рдмрдЪреНрдЪреЗ | рд╡рд┐рд╡рд░рдг |
| :--- | :--- | :--- | :--- |
| рдЦрдВрдб | рдСрдл idx
рд▓реЗрдитАСidx | | рд╕реНрд░реЛрдд рдЯрдкрд▓ рдХреЗ off-idx 'рд╡реЗрдВ рдФрд░ len-idx 'рд╡реЗрдВ wasm рдорд╛рди рд▓реЗрддрд╛ рд╣реИ, рдЬреЛ рджреЛрдиреЛрдВ i32 s рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рд░реИрдЦрд┐рдХ рдореЗрдореЛрд░реА рдХреЗ рдПрдХ рд╕реНрд▓рд╛рдЗрд╕ рдХреА рдСрдлрд╕реЗрдЯ рдФрд░ рд▓рдВрдмрд╛рдИ рдЬреЛ рдПрдХ рдЦрдВрдб рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИред |
| рдмрдВрджреА | рдСрдл idx
рд▓реЗрдитАСidx | | рд╕реНрд░реЛрдд рдЯрдкрд▓ рдХреЗ off-idx 'рд╡реЗрдВ рдФрд░ len-idx 'рд╡реЗрдВ wasm рдорд╛рди рд▓реЗрддрд╛ рд╣реИ, рдЬреЛ рджреЛрдиреЛрдВ i32 s рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдПрдХ рд╕реНрд▓рд╛рдЗрд╕ рдХреА рдСрдлрд╕реЗрдЯ рдФрд░ рд▓рдВрдмрд╛рдИ рдЬрд┐рд╕рдореЗрдВ рдХреНрд╖рдорддрд╛ рддрд╛рд▓рд┐рдХрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИред |
| рд╕рдВрджреЗрд╢ | рдХреИрдкрдирдкреНрд░реЛрдЯреЛ-рдЯрд╛рдЗрдк
рдХреНрд╖рдорддрд╛-рддрд╛рд▓рд┐рдХрд╛ | рдЦрдВрдб | рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рдХреНрд╖рдорддрд╛ рддрд╛рд▓рд┐рдХрд╛ рдФрд░ рдЦрдВрдбреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ capnproto-type рдкреНрд░рд╛рд░реВрдк рдХреЗ рд╕рд╛рде рдПрдХ рдХреИрдкрдирдкреНрд░реЛрдЯреЛ рд╕рдВрджреЗрд╢ рдмрдирд╛рддрд╛ рд╣реИред |

рдкреНрд░рдмрдВрдзрд┐рдд рд╕реНрдореГрддрд┐ рд╕реЗ рдХреНрд░рдорд╛рдВрдХрди

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

рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд░реВрдкрд╛рдВрддрд░рдг рдирд┐рдпрдо рдХрд╛рдлреА рд╕рд░рд▓ рд╣реЛрдВрдЧреЗ: i8 Int8, UInt8 рдФрд░ bool рдореЗрдВ рдХрдирд╡рд░реНрдЯ рдХрд░рддрд╛ рд╣реИ, i16 Int16 рдореЗрдВ рдХрдирд╡рд░реНрдЯ рдХрд░рддрд╛ рд╣реИ, рдЖрджрд┐ред рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдкреНрд░рдХрд╛рд░ рдЙрдирдХреЗ рдХреИрдкрдирдкреНрд░реЛрдЯреЛ рд╕рдордХрдХреНрд╖реЛрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛ рдЬрд╛рдПрдВрдЧреЗ: рд╕рдВрд░рдЪрдирд╛ рдФрд░ рд╕рд░рдгреА рд╕рдВрджрд░реНрдн рдкреЙрдЗрдВрдЯрд░реНрд╕ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рдЕрдкрд╛рд░рджрд░реНрд╢реА рд╕рдВрджрд░реНрдн рдХреНрд╖рдорддрд╛рдУрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░реЗрдВред

рдПрдХ рдЕрдзрд┐рдХ рдкреВрд░реНрдг рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рд▓рд┐рдП рдПрдирдо рдФрд░ рдпреВрдирд┐рдпрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд░рдгрдиреАрддрд┐ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдСрдкрд░реЗрдЯрд░реНрд╕

| рдСрдкрд░реЗрдЯрд░ | рддрддреНрдХрд╛рд▓ | рдмрдЪреНрдЪреЗ | рд╡рд┐рд╡рд░рдг |
| :--- | :--- | :--- | :--- |
| рдХреЗ рд░реВрдк рдореЗрдВ | рдХреИрдкрдирдкреНрд░реЛрдЯреЛ-рдЯрд╛рдЗрдк
рдЖрдИрдбреАрдПрдХреНрд╕ | | рд╕реНрд░реЛрдд рдЯрдкрд▓ рдХрд╛ idx 'рд╡реЗрдВ wasm рдорд╛рди рд▓реЗрддрд╛ рд╣реИ, рдЬреЛ рдПрдХ рд╕рдВрджрд░реНрдн рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ capnproto-type рдХрд╛ рдХреИрдкрдирдкреНрд░реЛрдЯреЛ рдорд╛рди рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред |

рд░реИрдЦрд┐рдХ рд╕реНрдореГрддрд┐ рдХреЗ рд▓рд┐рдП рдЕрдХреНрд░рдорд╛рдВрдХрди

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

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

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

рдкреНрд░рдмрдВрдзрд┐рдд рд╕реНрдореГрддрд┐ рдХреЗ рд▓рд┐рдП рдЕрдХреНрд░рдорд╛рдВрдХрди

рдкреНрд░рдмрдВрдзрд┐рдд рдореЗрдореЛрд░реА рдХреЛ рдбрд┐рд╕реЗрд░рд┐рдПрд▓рд╛рдЗрдЬрд╝ рдХрд░рдирд╛ рд╡рд┐рдкрд░реАрдд рджрд┐рд╢рд╛ рдХреЗ рд╕рдорд╛рди рд░реВрдкрд╛рдВрддрд░рдг рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ред

рдЧреЛрдВрдж рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛

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

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

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

рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕рдорд╛рдзрд╛рди

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

JSON рд╕рдВрджреЗрд╢реЛрдВ рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд░реЗрдВ

рдпрд╣ рдкрд╛рд╢рд╡рд┐рдХ рдмрд▓ рд╕рдорд╛рдзрд╛рди рд╣реИред рдореИрдВ рдЙрд╕ рдкрд░ рдЬреНрдпрд╛рджрд╛ рд╕рдордп рдирд╣реАрдВ рдЦрд░реНрдЪ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреА рдЦрд╛рдорд┐рдпрд╛рдВ рдХрд╛рдлреА рд╕реНрдкрд╖реНрдЯ рд╣реИрдВред рдпрд╣ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ 2, 4 рдФрд░ 6 рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИред

рдПрдХ рдХреНрд░рдорд╛рдВрдХрди рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдПрдиреНрдХреЛрдбреЗрдб рдХрдЪреНрдЪреЗ рдмрд╛рдЗрдЯ рднреЗрдЬреЗрдВ

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

рдпрд╣ 1 рдФрд░ 3 рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдХреБрдЫ рдЯреНрд╡рд┐рдХрд┐рдВрдЧ рдХреЗ рд╕рд╛рде 2 рдФрд░ 4 рдкрд╛рд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╕рдВрджрд░реНрднреЛрдВ рдХреЛ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдЗрдВрдбреЗрдХреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд╕ рдХрд░реЗрдВ)ред рдпрд╣ 6 рдкрд╛рд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреНрд░рдорд╛рдВрдХрди рдкреНрд░рдХрд╛рд░ рдХреЛ рдХреЙрд▓рд░ рдХреА рднрд╛рд╖рд╛ рдореЗрдВ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдореЗрдВ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ 5 рдФрд░ 7 рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИред рджреЛ рдЬреАрд╕реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдмреАрдЪ рдмрд╛рдзреНрдпрдХрд╛рд░реА рд╣реЛрдиреЗ рдкрд░ рдпрд╣ рдЕрд╡реНрдпрд╡рд╣рд╛рд░рд┐рдХ рд╣реИ; рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░реЛрдЯреЛрдмрдл рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рд╡рд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдПрдХ рдкрд╛рдпрдерди рдореЙрдбреНрдпреВрд▓ рдХреЛ рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рдХреЛ рд░реИрдЦрд┐рдХ рд╕реНрдореГрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдХреНрд░рдордмрджреНрдз рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рд╕реНрдореГрддрд┐ рдХреЗ рдЙрд╕ рдЯреБрдХрдбрд╝реЗ рдХреЛ рдкрд╛рд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рдЬрд╛рд╡рд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ deserialize рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдХреБрдЫ рд╣реИрд╢рдЯреЗрдмрд▓ рд▓реБрдХрдЕрдк рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдПрдХ рдЬреЗрдЖрдИрдЯреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиред

рдФрд░ рдпрд╣ рдкреНрд░рддреНрдпреЗрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд▓реЗрдЦрдХ рдХреЛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХреНрд░рдорд╛рдВрдХрди рдкреНрд░рд╛рд░реВрдк (JSON, Protobuf, FlatBuffer, Cap'n Proto, SBE) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЗрдВрдЯрд░рдСрдкрд░реЗрдмрд┐рд▓рд┐рдЯреА рдХреЗ рд▓рд┐рдП рдЖрджрд░реНрд╢ рдирд╣реАрдВ рд╣реИ; рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЯреВрд▓-рд╕рдореНрдореЗрд▓рдиреЛрдВ рдореЗрдВ рдПрдХ рд╡рд┐рд╣рд┐рдд рдХреНрд░рдорд╛рдВрдХрди рдкреНрд░рд╛рд░реВрдк рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдХреЗ рдЗрд╕реЗ рдХрдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рд░реИрдЦрд┐рдХ рдореЗрдореЛрд░реА рдХреЗ рдордирдорд╛рдиреЗ рд╕реНрд▓рд╛рдЗрд╕ рдХреЛ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдкрд╣рд▓рд╛ рдХрджрдо рд╣реЛрдЧрд╛ред

GC рдСрдмреНрдЬреЗрдХреНрдЯ рднреЗрдЬреЗрдВ

рдПрдХ рджреВрд╕рд░реЗ рдХреЛ GC рдСрдмреНрдЬреЗрдХреНрдЯ рднреЗрдЬрдиреЗ рд╡рд╛рд▓реЗ рдореЙрдбреНрдпреВрд▓ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ред

рд╕рдорд╛рдзрд╛рди рдХреЗ рдХреБрдЫ рдлрд╛рдпрджреЗ рд╣реИрдВ: рдЬреАрд╕реА рдкреНрд░рд╕реНрддрд╛рд╡ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЪрд▓ рд░рд╣рд╛ рд╣реИ; рдпрд╣ 1, 3, 4 рдФрд░ 7 рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИред рдЬреАрд╕реА-рдПрдХрддреНрд░рд┐рдд рдбреЗрдЯрд╛ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдирд╛ рдорд╣рдВрдЧрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╕реНрддрд╛ рд╣реИред

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

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡рд░реНрддрдорд╛рди рдЬреАрд╕реА рдкреНрд░рд╕реНрддрд╛рд╡ рдореЗрдВ рдПрдирдо рдФрд░ рдпреВрдирд┐рдпрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕рдорд░реНрдерди рдирд╣реАрдВ рд╣реИ; рдФрд░ рддреНрд░реБрдЯрд┐ рдкреНрд░рдмрдВрдзрди рдпрд╛ рддреЛ рд╕рдВрдХрд▓рди рд╕рдордп рдХреЗ рдмрдЬрд╛рдп рд▓рд┐рдВрдХ рд╕рдордп рдпрд╛ рд░рди рдЯрд╛рдЗрдо рдкрд░ рд╣реЛрдЧрд╛, рдЬрдм рддрдХ рдХрд┐ рд╕рдВрдХрд▓рдХ рдЬреАрд╕реА рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдкрдврд╝ рдФрд░ рд╕рдордЭ рдирд╣реАрдВ рд╕рдХрддрд╛ред

рдЕрдиреНрдп рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХрд╛ рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВ

рдХреЛрдИ рднреА рдХреНрд░рдорд╛рдВрдХрди рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЬреЛ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреА рдкреНрд░рдгрд╛рд▓реА рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, wasm рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред

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

рдмрдЪрд╛ рд╣реБрдЖ рдХрд╛рд░реНрдп

рдЗрд╕ рдирдВрдЧреЗ рд╣рдбреНрдбрд┐рдпреЛрдВ рдХреЗ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЛ рдПрдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЛ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдЬрд┐рд╕реЗ рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рд╕рдореВрд╣ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

  • рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдСрдкрд░реЗрдЯрд░реНрд╕
  • рдЬреАрд╕реА рдкреНрд░рдХрд╛рд░ рддреБрд▓реНрдпрддрд╛
  • рд╡рд╕реНрддреБ рдХреНрд╖рдорддрд╛
  • рдмреВрд▓ рд╕рд░рдгрд┐рдпрд╛рдБ
  • рд╕рд░рдгрд┐рдпреЛрдВ
  • рд╕реНрдерд┐рд░рд╛рдВрдХ
  • рдЬреЗрдиреЗрд░рд┐рдХреНрд╕
  • рд╡рд┐рдХрд╛рд╕ рдЯрд╛рдЗрдк рдХрд░реЗрдВ
  • рдПрдХ рддреАрд╕рд░рд╛ "рдЧреЗрдЯрд░реНрд╕ рдПрдВрдб рд╕реЗрдЯрд░реНрд╕" рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдкреНрд░рдХрд╛рд░ рдЬреЛрдбрд╝реЗрдВред
  • рд╕рдВрднрд╛рд╡рд┐рдд рдХреИрд╢рд┐рдВрдЧ рд░рдгрдиреАрддрд┐рдпрд╛рдБ
  • рдПрдХрд╛рдзрд┐рдХ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдФрд░ рд░реИрдЦрд┐рдХ рдпрд╛рджреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди

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

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

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

рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдзрд╛рд░рдгрд╛ рд╣реИ рдЬреЛ рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдЪ рдирд╣реАрдВ рд╣реИред рдореЗрд░рд╛ рдЕрдиреБрднрд╡ рдпрд╣ рд╣реИ рдХрд┐ рднрд╛рд╖рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд░реВрдк рдореЗрдВ рдХрдИ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ (рдХрдо рд╕реЗ рдХрдо!)ред рдФрд░ рд╡реЗ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдЬрдЯрд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

V8 рд▓реЗрдВ, рдЬрд┐рд╕рдореЗрдВ рдЕрдХреЗрд▓реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рджрд░реНрдЬрди (!) рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдПрдиреНрдХреЛрдбрд┐рдВрдЧ, рд╡рд┐рд╖рдо рд░рд╕реНрд╕рд┐рдпрд╛рдВ тАЛтАЛтАЛтАЛрдЖрджрд┐ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

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

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

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

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

рдФрд░ рдлрд┐рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдкрдХреНрд╖ рд╣реИ, рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ рдЗрди рд╕рднреА рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЛ рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рд╣реЛрдЧрд╛!

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

рд╕рднреА 61 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдпрд╣ рд╡рд╛рдХрдИ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ! рдореИрдВрдиреЗ рдХреЗрд╡рд▓ рдЬрд▓реНрджреА рд╕реЗ рдкрдврд╝рд╛ рд╣реИ, рдФрд░ рдмрд╕ рдХреБрдЫ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╡рд┐рдЪрд╛рд░ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рдкрд╣рд▓рд╛ рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд░рд╢реНрди рдпрд╣ рдкреВрдЫрдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдореМрдЬреВрджрд╛ рдПрдлрдПрдлрдЖрдИ рддрдВрддреНрд░ рдЬреЛ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рднрд╛рд╖рд╛рдПрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреНрд░рджрд╛рди/рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИрдВ, WebAssembly рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИрдВред рд▓рдЧрднрдЧ рд╣рд░ рднрд╛рд╖рд╛ рд╕реЗ рдореИрдВ рдкрд░рд┐рдЪрд┐рдд рд╣реВрдВ, рдЗрд╕рдореЗрдВ рд╕реА рдПрдлрдПрдлрдЖрдИ рдХрд╛ рдХреЛрдИ рди рдХреЛрдИ рд░реВрдк рд╣реИ, рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЖрдЬ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрдВрдЯрд░рдСрдкрд░реЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИред рдЙрдирдореЗрдВ рд╕реЗ рдХрдИ рднрд╛рд╖рд╛рдПрдВ рдЙрди рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рднреА рд╕реНрдерд┐рд░ рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрди рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЯреВрд▓рд┐рдВрдЧ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдВрдЧ рдХреЗ рд▓рд┐рдП bindgen рдЯреЛрдХрд░рд╛, рдПрд░рд▓рд╛рдВрдЧ/рдмреАрдИрдПрдПрдо рдХреЗ рд▓рд┐рдП erl_nif рдЖрджрд┐)ред рд╕реА рдПрдлрдПрдлрдЖрдИ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рд┐рджреНрдз рд╣реЛрдиреЗ рдФрд░ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рдХрд╛ рдкреНрд░рдореБрдЦ рд▓рд╛рдн рд╣реИред

5 - рдореЗрдореЛрд░реА рд▓реЗрдЖрдЙрдЯ рдХреЗ рдмреАрдЪ рдкреБрд▓

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

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

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

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

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ рдпрджрд┐ рдореИрдВрдиреЗ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рдХреЛ рдЧрд▓рдд рд╕рдордЭрд╛ рд╣реИ, рдпрд╛ рдХреБрдЫ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдпрд╛рдж рдХрд┐рдпрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рдореБрдЭреЗ рдлрд┐рд░ рд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рдзреНрдпрд╛рди рд╕реЗ рдкрдврд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдХреБрдЫ рд╕рдордп рд╣реЛрдиреЗ рдкрд░ рдореБрдЭреЗ рдЕрдкрдиреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкреНрд░рд╢реНрди рдЙрдард╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдЗрд╕рдХреЗ рд▓рд┐рдП рднреА

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

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

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

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

рдмреАред рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреА рдкреНрд░рдгрд╛рд▓реА рдХреЗ рдХрд┐рд╕реА рднреА рдПрд▓рд╕реАрдбреА рдХреЛ рдХрд┐рд╕реА рджреА рдЧрдИ рднрд╛рд╖рд╛ рдХреА рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреА рднрд╛рд╖рд╛ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХреА рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рд╣реИред рдпрд╣ рднрд╛рд╖рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХрд░реНрддрд╛ рдХреЛ рдПрдХ рдЧрд╣рд░реА рдЕрд╕рд╣рдЬ рдкрд╕рдВрдж рдХреЗ рд╕рд╛рде рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ: рдЕрдкрдиреА рднрд╛рд╖рд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВ рдпрд╛ рдЕрдкрдиреА рднрд╛рд╖рд╛ рдХреА рдкреНрд░рдХрд╛рд░ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд▓рд╛рднреЛрдВ рдХреЛ рддреНрдпрд╛рдЧ рджреЗрдВред рдорд╛рдорд▓реЗ рдореЗрдВ рдорд╛рдорд▓рд╛: рд╣рд╛рд╕реНрдХреЗрд▓ рдореЗрдВ 'рдЯрд╛рдЗрдк рдХреНрд▓рд╛рд╕' рд╣реИрдВред рд╣рд╛рд╕реНрдХреЗрд▓ рдХрд╛ рдХреЛрдИ рднреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЬрд┐рд╕рдореЗрдВ рд╕рдорд░реНрдерди рдкреНрд░рдХрд╛рд░ рдХреА рдХрдХреНрд╖рд╛рдПрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИрдВ, рдЗрд╕реЗ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░реЗрдЧрд╛ рдФрд░ рдЗрд╕реЗ рдЕрдиреБрдкрдпреЛрдЧреА рдмрдирд╛ рджреЗрдЧрд╛ред
рдПрдХ рдЕрдиреНрдп рдЙрджрд╛рд╣рд░рдг: рд╕реА ++ рдХреЗ рдЬреЗрдирд░рд┐рдХ рдХреЗ рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рдЬреЗрдиреЗрд░рд┐рдХрд┐рдЯреА рдХреЗ рд╕рдВрдХрд▓рди-рд╕рдордп рдЙрдиреНрдореВрд▓рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ; рджреВрд╕рд░реА рдУрд░, рдПрдордПрд▓, рдЬрд╛рд╡рд╛ (рдФрд░ рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣) рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЗ рдПрдХ рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ - рдЬреЛ рдХрд┐ рд╕реА ++ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдП рдЧрдП рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдЕрдиреБрдХреВрд▓ рдирд╣реАрдВ рд╣реИред

рджреВрд╕рд░реА рдУрд░ рдПрдХ рдирд┐рд░реНрдпрд╛рдд/рдЖрдпрд╛рддрд┐рдд рдкреНрд░рдХрд╛рд░ рдХреЗ рджреЛ рднрд╛рд╡ рд╣реЛрдиреЗ рд╕реЗ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдореБрджреНрджреЗ рд╕рд╛рдордиреЗ рдЖрддреЗ рд╣реИрдВ: рдХреНрдпрд╛ рднрд╛рд╖рд╛ рдкреНрд░рдгрд╛рд▓реА рдХреЛ рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рджреЛ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреБрдЫ рдЕрд░реНрдереЛрдВ рдореЗрдВ рд╕реБрд╕рдВрдЧрдд рд╣реИрдВ? рдпрд╣ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЬрд┐рдореНрдореЗрджрд╛рд░реА рдХрд┐рд╕рдХреА рд╣реИ?

@lukewagner рд▓рд┐рдВрдХ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЦреБрд╢реА рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЙрд╕ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рдкрдврд╝рдиреЗ рдХрд╛ рдореМрдХрд╛ рдорд┐рд▓рд╛!

рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рдЪрд░реНрдЪрд╛ рдореЗрдВ рджреЛ рдЪреАрдЬреЗрдВ рдПрдХ рд╕рд╛рде рдорд┐рд╢реНрд░рд┐рдд рд╣реИрдВ - рдиреАрдЪреЗ рдЬреЛ рдХреБрдЫ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдЙрд╕рдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреЛ рдореЗрд░реА рд╕рдордЭ рдХреЛ рджреЛрдмрд╛рд░рд╛ рдЬрд╛рдВрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХрд┐рд╕реА рднреА рдЪреАрдЬ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдЧрд▓рдд рд╕рдордЭрд╛ рдпрд╛ рдпрд╛рдж рдХрд┐рдпрд╛ рд╣реЛ:

  1. рдХреБрд╢рд▓ рдореЗрдЬрдмрд╛рди рдмрд╛рдЗрдВрдбрд┐рдВрдЧ

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

  2. рдХреБрд╢рд▓ рд╣реЗрдЯреЗрд░реЛрдЬреЗрдирд╕ рдореЙрдбреНрдпреВрд▓-рдЯреВ-рдореЙрдбреНрдпреВрд▓ рдмрд╛рдЗрдВрдбрд┐рдВрдЧред

    • рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рджреЛ рдореЙрдбреНрдпреВрд▓ рджрд┐рдП рдЧрдП рд╣реИрдВ, рдПрдХ source рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рджреВрд╕рд░рд╛ dest рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдЙрдирдХреЗ рдмреАрдЪ рдкреНрд░рдХрд╛рд░ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛, рд╕реНрд░реЛрдд рд╕реЗ рдХреЙрд▓ рдХрд░рдирд╛-> рдЧрдВрддрд╡реНрдп рдФрд░/рдпрд╛ рдЧрдВрддрд╡реНрдп-> рд╕реНрд░реЛрдд

    • рдпрджрд┐ рдХреЛрдИ рд╕рд╛рдорд╛рдиреНрдп FFI рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ, рдФрд░ WebIDL рдЬреИрд╕рд╛ рдХреБрдЫ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд 1 рдкрд░ рдкрд┐рдЧреНрдЧреА-рдмреИрдХрд┐рдВрдЧ, рддреЛ рднрд╛рд╖рд╛ рдЕрд╡рд░реЛрдзреЛрдВ рдХреЛ рдкрд╛рд░ рдХрд░рддреЗ рд╕рдордп рд╣реЛрд╕реНрдЯ рд╡рд╛рддрд╛рд╡рд░рдг рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдХреБрдЫ рд╕рд╛рдорд╛рдиреНрдп рднрд╛рдЬрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧреИрд░-рдЕрдиреБрдХреВрд▓рд┐рдд рдкрде рд╣реЛрдЧрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП source type -> common type -> dest type .



      • рдПрдХ рдЕрдиреБрдХреВрд▓рди рдЗрдВрдЬрди рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ рдЗрд╕ рдЕрдиреБрд╡рд╛рдж рдХреЛ source рд╕реЗ dest рдмрд┐рдирд╛ рдХрд┐рд╕реА рдмреАрдЪ рдЬрд╛рдиреЗ рдХреЗ рдкреНрд░рддреНрдпрдХреНрд╖ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдЕрдиреБрд╡рд╛рдж рдУрд╡рд░рд╣реЗрдб рд▓рдЧрд╛рддрд╛ рд╣реИред



    • рдпрджрд┐ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп FFI рдЙрдкрд▓рдмреНрдз рд╣реИ, рдЕрд░реНрдерд╛рдд source рдФрд░ dest рдПрдХ ABI (рдЬреИрд╕реЗ C ABI) рд╕рд╛рдЭрд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ source рдФрд░ dest рдПрдХ рджреВрд╕рд░реЗ рдХреЛ рд╕реАрдзреЗ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдПрдлрдПрдлрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЛрдИ рдУрд╡рд░рд╣реЗрдб рдирд╣реАрдВред рдпрд╣ рд╢рд╛рдпрдж рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╡рд╛рд▓рд╛ рдкрд░рд┐рджреГрд╢реНрдп рд╣реИред

рддреЛ рдореЗрд░рд╛ рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ WebIDL, рдпрд╛ рдЗрд╕рдХреЗ рдЬреИрд╕рд╛ рдХреБрдЫ (рдпрд╛рдиреА рдПрдХ рд╕реБрдкрд░рд╕реЗрдЯ рдЬреЛ рд╣реЛрд╕реНрдЯ рдПрдкреАрдЖрдИ/рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд╡реНрдпрд╛рдкрдХ рд╕реЗрдЯ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ) рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд▓рд╛рдн рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЗрд╡рд▓ 1 рдореЗрдВ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рд╣реИ, рдФрд░ рд╕рдмрд╕реЗрдЯ 2 рдХрд╛ рдЬреЛ рдЕрдВрддрд░-рднрд╛рд╖рд╛ рдмрдВрдзрдиреЛрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ рдЬрд╣рд╛рдВ рдХреЛрдИ рдПрдлрдПрдлрдЖрдИ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИред 2 рдХрд╛ рдЙрдкрд╕рдореБрдЪреНрдЪрдп рдЬрд╣рд╛рдВ FFI _is_ рдЙрдкрд▓рдмреНрдз рд╣реИ, рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдХреЛрдИ рдУрд╡рд░рд╣реЗрдб рдирд╣реАрдВ рд╣реИред

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

рдореЗрд░реЗ рдкрд╛рд╕ рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рд╢реНрди рд╣реИрдВ, рдпрджрд┐ C FFI (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рдмрд╕реЗ рдЖрдо рд╣реИ) рдФрд░ IDL рджреЛрдиреЛрдВ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдЙрдкрдпреЛрдЧ/рдЙрдкрд╕реНрдерд┐рдд рд╣реИрдВ:

  • рдпрджрд┐ рджреЛрдиреЛрдВ source рдФрд░ dest рднрд╛рд╖рд╛рдПрдВ рд╕рд╛рдЭрд╛ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рдХрд╛рд░ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛рдПрдВ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИрдВ, рддреЛ рдЙрдирдХреЗ рд╕рд╛рдорд╛рдиреНрдп рдПрдмреАрдЖрдИ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕рдорд╛рди рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЗрди-рдореЗрдореЛрд░реА рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдЪрд░-рд▓рдВрдмрд╛рдИ рд╕рд░рдгреА рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡) ) - рдХреНрдпрд╛ рд╣реЛрд╕реНрдЯ рдЗрдВрдЬрди рдЙрди рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдмреАрдЪ рдХреЗрд╡рд▓ рдЗрд╕рд▓рд┐рдП рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ IDL рдирд┐рд░реНрджреЗрд╢ рдореМрдЬреВрдж рд╣реИрдВ, рднрд▓реЗ рд╣реА рд╡реЗ рдЕрдкрдиреЗ рдорд╛рдирдХ FFI рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рджреВрд╕рд░реЗ рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдХреЙрд▓ рдХрд░ рд╕рдХреЗрдВ?

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

    • рдпрджрд┐ рд╣рд╛рдВ, рддреЛ рд╣реЛрд╕реНрдЯ рдЗрдВрдЬрди рдкреНрд░рдХрд╛рд░ рдХреЛ рдХреИрд╕реЗ рдПрдХреАрдХреГрдд рдХрд░рддрд╛ рд╣реИ ?:



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


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





        • рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдкреНрд░рдХрд╛рд░ рдХреЛ рдХреМрди рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ? рдореИрдВ рдХрд┐рд╕реА рднрд╛рд╖рд╛ рдХреЗ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╕рдВрджрд░реНрдн рднреА рдХреИрд╕реЗ рджреВрдВ? рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдорд╛рди рд▓реЗрдВ рдХрд┐ рдореИрдВ рдХрд┐рд╕реА рдЕрдиреНрдп рднрд╛рд╖рд╛ рдореЗрдВ рд▓рд┐рдЦреА рдЧрдИ рд╕рд╛рдЭрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдХреЙрд▓ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ add/2 рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреА рд╣реИ, рдФрд░ add/2 рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рджреЛ рддрд░реНрдХреЛрдВ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ size_t ред рдореЗрд░реА рднрд╛рд╖рд╛ рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ size_t рдирд╛рдордорд╛рддреНрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирддреА рд╣реИ, рдЗрд╕рдХрд╛ рдорд╢реАрди-рдЪреМрдбрд╝рд╛рдИ рд╡рд╛рд▓реЗ рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдкреВрд░реНрдгрд╛рдВрдХреЛрдВ рдХрд╛ рдЕрдкрдирд╛ ABI-рд╕рдВрдЧрдд рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рд╣реИ, usize , рдЗрд╕рд▓рд┐рдП рдореЗрд░реА рднрд╛рд╖рд╛ рдореЗрдВ рдЙрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП FFI рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдореЗрд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдкреНрд░рдХрд╛рд░ред рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП, рдореЗрд░рд╛ рдХрдВрдкрд╛рдЗрд▓рд░ рдЖрдИрдбреАрдПрд▓ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреИрд╕реЗ рдЬрд╛рди рд╕рдХрддрд╛ рд╣реИ рдЬреЛ usize рд╕реЗ size_t рдореИрдк рдХрд░рддрд╛ рд╣реИред






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

рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдБ рдХрд┐ рдореИрдВ рдЕрднреА рднреА WebIDL рдФрд░ рдЙрд╕рдХреЗ рдкреВрд░реНрд╡рд╡рд░реНрддрд┐рдпреЛрдВ рдХреЗ рдкреВрд░реНрдг рд╡рд┐рд╡рд░рдг рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЦреБрджрд╛рдИ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ, рдпрд╣ рд╕рдм рд╡рд┐рднрд┐рдиреНрди рдореЗрдЬрдмрд╛рдиреЛрдВ (рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдмрдирд╛рдо рдЧреИрд░-рдмреНрд░рд╛рдЙрдЬрд╝рд░) рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдлрд┐рдЯ рдмреИрдарддрд╛ рд╣реИ рдФрд░ рдЗрд╕реА рддрд░рд╣, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдореИрдВрдиреЗ рдЕрдирджреЗрдЦреА рдХреА рд╣реИ рдХреБрдЫред

@bitwalker

рдпрд╣ рд╡рд╛рдХрдИ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ!

рдЦреБрд╢реА рд╣реИ рддреБрдЭреЗ рдпрд╣ рдкрд╕рдВрдж рд╣реИ!

рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рдкрд╣рд▓рд╛ рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рд╡рд╛рд▓ рдпрд╣ рдкреВрдЫрдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдореМрдЬреВрджрд╛ рдПрдлрдПрдлрдЖрдИ рддрдВрддреНрд░ рдЬреЛ рдХрд┐ рдЬреНрдпрд╛рджрд╛рддрд░ рднрд╛рд╖рд╛рдПрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреНрд░рджрд╛рди/рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИрдВ, WebAssembly рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИрдВред

C рдЯрд╛рдЗрдк рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЕрдВрддрд░-рднрд╛рд╖рд╛ IDL рдХреЗ рд░реВрдк рдореЗрдВ рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ:

  • рдпрд╣ рдПрдХ рд╕рд╛рдЭрд╛ рдкрддрд╛ рд╕реНрдерд╛рди рдХреА рдзрд╛рд░рдгрд╛ рдХреЗ рддрд╣рдд рд╕рдВрдЪрд╛рд▓рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рдФрд░ рдЬрд╛рдирдмреВрдЭрдХрд░ WebAssembly рдореЗрдВ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред (рдЬреЗрдПрд╕-рдЯреВ-рд╕реА рдПрдлрдПрдлрдЖрдИ рдХреЗ рд╕рд╛рде рдореЗрд░рд╛ рдЕрдкрдирд╛ рдЕрдиреБрднрд╡ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрддрд┐ рдХреЗ рд▓рд┐рдП рд╕рд┐рд░реНрдл рд╡реНрдпрд╛рдкрд╛рд░ рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рд╣реЛрддрд╛ рд╣реИ)

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

  • рд╕рдВрджрд░реНрдн рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдмрд░рд╛рдмрд░ рдкреНрд░рддреНрдпрдХреНрд╖ рдирд╣реАрдВ рд╣реИред

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

рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЙрди рдЪреАрдЬрд╝реЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк FFI рдореЗрдВ рдЖрдЧреЗ-рдкреАрдЫреЗ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ

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

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

рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЕрднреА, рдЖрдо рдПрдмреАрдЖрдИ рд░реИрдЦрд┐рдХ рд╕реНрдореГрддрд┐ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдмрд╛рдЗрдЯреНрд╕ рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рд╣реИред рд▓реЗрдХрд┐рди рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рдЬрдм рдЬреАрд╕реА рдкреНрд░рд╕реНрддрд╛рд╡ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХреБрдЫ рднрд╛рд╖рд╛рдПрдВ (рдЬрд╛рд╡рд╛, рд╕реА #, рдкрд╛рдпрдерди) рд░реИрдЦрд┐рдХ рдореЗрдореЛрд░реА рдореЗрдВ рдмрд╣реБрдд рдХрдо рдпрд╛ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╕реНрдЯреЛрд░ рдХрд░рддреА рд╣реИрдВред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рд╡реЗ рдЕрдкрдирд╛ рд╕рд╛рд░рд╛ рдбреЗрдЯрд╛ GC рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдореЗрдВ рд╕реНрдЯреЛрд░ рдХрд░реЗрдВрдЧреЗред рдпрджрд┐ рдЗрдирдореЗрдВ рд╕реЗ рджреЛ рднрд╛рд╖рд╛рдПрдВ рд╕рдВрд╡рд╛рдж рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреА рд╣реИрдВ, рддреЛ рдЗрди рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЛ рдХреЗрд╡рд▓ рдмрд╛рдЗрдЯреНрд╕ рдХреА рдзрд╛рд░рд╛ рдореЗрдВ рдХреНрд░рдордмрджреНрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рддреБрд░рдВрдд deserialize рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдирд╛рд╡рд╢реНрдпрдХ рдУрд╡рд░рд╣реЗрдб рд╣реЛрдЧрд╛ред


@KronicDeth рдзрдиреНрдпрд╡рд╛рдж, рдореИрдВ рдЗрд╕реЗ рджреЗрдЦ рд▓реВрдВрдЧрд╛ред

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


@lukewagner

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

рдорд╛рдирд╛ред рдЗрд╕ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЛ рд▓рд┐рдЦрддреЗ рд╕рдордп рдореЗрд░реА рдзрд╛рд░рдгрд╛ рдпрд╣ рдереА рдХрд┐ рдХреЛрдИ рднреА рдХреИрдкрдирдкреНрд░реЛрдЯреЛ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡реЗрдмрдЖрдИрдбреАрдПрд▓ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдлреАрдбрдмреИрдХ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реЛрдЧрд╛ред

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

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреИрдкрдирдкреНрд░реЛрдЯреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХрд╛ рдореВрд▓реНрдп рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдЬрд▓реНрджреА рднреА рд╣реИред

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

рдПрди-рдЯреВ-рдПрди рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ, рдореИрдВ рдЗрди рд╕рдорд╛рдзрд╛рдиреЛрдВ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ:

  • рдХреЗрд╡рд▓ RPC- рд╢реИрд▓реА рдбреЗрдЯрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд░реЗрдВред рд╕рд╛рдЭрд╛ рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ рдбреЗрдЯрд╛, рдХрдХреНрд╖рд╛рдПрдВ, рд╕реВрдЪрдХ рдЬреАрд╡рдирдХрд╛рд▓, рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдХреЛ "рдПрдХ рд╡реЗрдХреНрдЯрд░ рдореЗрдВ рддреАрди рдлрд╝реАрд▓реНрдб: 'x', 'y', рдФрд░ 'z', рдЬреЛ рд╕рднреА рдлрд╝реНрд▓реЛрдЯ рд╣реИрдВ" рд╕реЗ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рди рдХрд░реЗрдВред

  • рднрд╛рд╖рд╛рдУрдВ рдХреЛ рд╕рдореВрд╣рдмрджреНрдз рдХрд░рдиреЗ рдФрд░ рдорд╛рдорд▓реЛрдВ рдХреЛ рдбреЗрдЯрд╛-рд╣реИрдВрдбрд▓рд┐рдВрдЧ рд░рдгрдиреАрддрд┐рдпреЛрдВ рдХреЗ "рдХреНрд▓рд╕реНрдЯрд░" рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдЗрди рд╕рдореВрд╣реЛрдВ рдХреЗ рдХреЗрдВрджреНрд░ рдореЗрдВ рд░рдгрдиреАрддрд┐рдпрд╛рдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ; рднрд╛рд╖рд╛ рд╕рдВрдХрд▓рдХ рдХрд┐рд╕реА рджреА рдЧрдИ рд░рдгрдиреАрддрд┐ рд╕реЗ рдЬреБрдбрд╝рддреЗ рд╣реИрдВ, рдФрд░ рджреБрднрд╛рд╖рд┐рдпрд╛ рдмрд╛рдХреА NxN рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред


@fgmccabe

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

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

рд╣рд╛рдБ, рд╡рд┐рдЪрд╛рд░ рдПрдХ рдЖрджрд░реНрд╢ "рд╕рднреА рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЖрд╕рд╛рдиреА рд╕реЗ рд╕рдВрдЧрдд" рдЕрдореВрд░реНрддрддрд╛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИред

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

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдмреАрдЪ рдШрд░реНрд╖рдг рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрди рд╕рдорд╛рдирддрд╛рдУрдВ рдореЗрдВ рдЯреИрдк рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред (рд▓реБрдХрд╡реИрдЧрдирд░ рдХреЛ рдореЗрд░рд╛ рдЬрд╡рд╛рдм рднреА рджреЗрдЦреЗрдВ)

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

рд╣рд╛рдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдБ рдЕрдВрдЧреВрдареЗ рдХрд╛ рдирд┐рдпрдо рд╣реИ "рдпрджрд┐ рдпрд╣ рдПрдХ рд╕рд╛рдЭрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕реАрдорд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рдПрдХ рдХреИрдкрдирдкреНрд░реЛрдЯреЛ рдкреНрд░рдХрд╛рд░ рдмрдирд╛рдПрдВ, рдЕрдиреНрдпрдерд╛, рдЕрдкрдиреЗ рдореВрд▓ рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ"ред

рджреВрд╕рд░реА рдУрд░ рдПрдХ рдирд┐рд░реНрдпрд╛рдд/рдЖрдпрд╛рддрд┐рдд рдкреНрд░рдХрд╛рд░ рдХреЗ рджреЛ рднрд╛рд╡ рд╣реЛрдиреЗ рд╕реЗ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдореБрджреНрджреЗ рд╕рд╛рдордиреЗ рдЖрддреЗ рд╣реИрдВ: рдХреНрдпрд╛ рднрд╛рд╖рд╛ рдкреНрд░рдгрд╛рд▓реА рдХреЛ рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рджреЛ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреБрдЫ рдЕрд░реНрдереЛрдВ рдореЗрдВ рд╕реБрд╕рдВрдЧрдд рд╣реИрдВ? рдпрд╣ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЬрд┐рдореНрдореЗрджрд╛рд░реА рдХрд┐рд╕рдХреА рд╣реИ?

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

"рдХрд┐рд╕рдХреА рдЬрд┐рдореНрдореЗрджрд╛рд░реА рд╣реИ" рдХрд╛ рдЙрддреНрддрд░ рдЖрдорддреМрд░ рдкрд░ "рдХреИрд▓реА" рд╣реЛрддрд╛ рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ рдЙрдиреНрд╣реЗрдВ рдпрд╣ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрдЪрд╛рд╣рд┐рдП рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рдХреЛрдИ рднреА рдбреЗрдЯрд╛ рд╕рдВрджрд┐рдЧреНрдз рд╣реИ), рд▓реЗрдХрд┐рди рдпрджрд┐ рджреБрднрд╛рд╖рд┐рдпрд╛ рдпрд╣ рд╕рд╛рдмрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреЙрд▓рд░ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЗрдирд╡реЗрд░рд┐рдПрдВрдЯ рдХрд╛ рд╕рдореНрдорд╛рди рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЪреЗрдХ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

C рдкреНрд░рдХрд╛рд░ рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдЕрдВрддрд░-рднрд╛рд╖рд╛ IDL рдХреЗ рд░реВрдк рдореЗрдВ рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ

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

рдпрд╣ рдПрдХ рд╕рд╛рдЭрд╛ рдкрддрд╛ рд╕реНрдерд╛рди рдХреА рдзрд╛рд░рдгрд╛ рдХреЗ рддрд╣рдд рд╕рдВрдЪрд╛рд▓рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рдФрд░ рдЬрд╛рдирдмреВрдЭрдХрд░ WebAssembly рдореЗрдВ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдпрд╣рд╛рдВ рдЧрд▓рддрдлрд╣рдореА рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рджреЗрдЦрддрд╛ рд╣реВрдВред рдПрдлрдПрдлрдЖрдИ рдХреЗ рджреЛ рд╡рд░реНрдЧ рд╣реИрдВ рдЬрд┐рдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдо рдпрд╣рд╛рдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдПрдХ рдЬрд┐рд╕рдореЗрдВ рд░реИрдЦрд┐рдХ рдореЗрдореЛрд░реА (рдЕрдзрд┐рдХ рдкрд╛рд░рдВрдкрд░рд┐рдХ рд╕рд╛рдЭрд╛ рдореЗрдореЛрд░реА рдПрдлрдПрдлрдЖрдИ) рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ, рдФрд░ рдПрдХ рдЬреЛ рдирд╣реАрдВ рд╣реИ (рдЕрдзрд┐рдХ рдкрд╛рд░рдВрдкрд░рд┐рдХ рдЖрдИрдкреАрд╕реА/рдЖрд░рдкреАрд╕реА)ред рдореИрдВ рдкрд╣рд▓реЗ рд╡рд╛рд▓реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдмрд╛рдж рд╡рд╛рд▓реЗ рдкрд░ рдЕрдзрд┐рдХ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред

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

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

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

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

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╢рд╛рдпрдж рдЕрдм рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рд╣рдо рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЪреАрдЬреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рдереЗ, рд▓реЗрдХрд┐рди рд╕рд┐рд░реНрдл рднрд╛рд╡реА рдкреАрдврд╝реА рдХреЗ рд▓рд┐рдП: рдПрдмреАрдЖрдИ рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЪрд░-рд▓рдВрдмрд╛рдИ рд╡рд╛рд▓реЗ рд╕рд░рдгреА рдФрд░ рдЯреИрдЧ рдХрд┐рдП рдЧрдП рдпреВрдирд┐рдпрдиреЛрдВ рдХреЗ рд▓рд┐рдП _representation_ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рд╕рд╣реА рд╣реИрдВ рдХрд┐ рд╕реА рдореЗрдВ рдПрдХ рд╣реИ рдХрдордЬреЛрд░ рдкреНрд░рдХрд╛рд░ рдХреА рдкреНрд░рдгрд╛рд▓реА, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╛рдд рдирд╣реАрдВ рд╣реИ, рднрд╛рд╖рд╛рдПрдВ рд╕реА рдкреНрд░рдХрд╛рд░ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд▓рд┐рдП рд╕реА рдПрдлрдПрдлрдЖрдИ рдХреЛ рд▓рдХреНрд╖рд┐рдд рдирд╣реАрдВ рдХрд░ рд░рд╣реА рд╣реИрдВред C ABI рдХреЗ рдЙрдкрдпреЛрдЧреА рд╣реЛрдиреЗ рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рднрд╛рдЬрдХ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рднрд╛рд╖рд╛рдПрдБ рджреВрд╕рд░реЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрддреА рд╣реИрдВ рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рдЙрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рдкреНрд░рдгрд╛рд▓реА рдХреА рдХреЛрдИ рдЕрд╡рдзрд╛рд░рдгрд╛ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╡реЗ рдмрд╛рддрдЪреАрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдкреНрд░рдХрд╛рд░ рдХреА рд╕рд┐рд╕реНрдЯрдо рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреА рдХрдореА рдЖрджрд░реНрд╢ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдПрдлрдПрдлрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрдк рдЬрд┐рд╕ рддрд░рд╣ рдХреА рдЪреАрдЬреЛрдВ рдХреЛ рд╡реНрдпрдХреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрд╕реЗ рд╕реАрдорд┐рдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕реАрдорд╛рдПрдВ рдЗрд╕ рдмрд╛рдд рдХрд╛ рднреА рд╣рд┐рд╕реНрд╕рд╛ рд╣реИрдВ рдХрд┐ рдпрд╣ рдЬреЛ рдХрд░рддрд╛ рд╣реИ рдЙрд╕рдореЗрдВ рдЗрддрдирд╛ рд╕рдлрд▓ рдХреНрдпреЛрдВ рд╣реИ, рд▓рдЧрднрдЧ рдХреЛрдИ рднреА рднрд╛рд╖рд╛ рдПрдХ рд░рд╛рд╕реНрддрд╛ рдЦреЛрдЬ рд╕рдХрддреА рд╣реИ рдЙрд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрд╕рдХреЗ рд╕рд╛рдордиреЗ рдЖрдиреЗ рд╡рд╛рд▓реА рдЪреАрдЬреЛрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрддред

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

рд╕рд╣рдордд, рдЖрдИрдкреАрд╕реА/рдЖрд░рдкреАрд╕реА рдХреЗ рд▓рд┐рдП, рд╕реА рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рднрдпрд╛рдирдХ рднрд╛рд╖рд╛ рд╣реИред

рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЕрднреА, рдЖрдо рдПрдмреАрдЖрдИ рд░реИрдЦрд┐рдХ рд╕реНрдореГрддрд┐ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдмрд╛рдЗрдЯреНрд╕ рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рд╣реИред

рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╡рд╣ рдЖрджрд┐рдо рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╣рдо рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди C ABI рдЙрд╕рдХреЗ рдКрдкрд░ рдмрд╣реБрдд рдХреБрдЫ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рдЬрдм рдЬреАрд╕реА рдкреНрд░рд╕реНрддрд╛рд╡ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХреБрдЫ рднрд╛рд╖рд╛рдПрдВ (рдЬрд╛рд╡рд╛, рд╕реА #, рдкрд╛рдпрдерди) рд░реИрдЦрд┐рдХ рдореЗрдореЛрд░реА рдореЗрдВ рдмрд╣реБрдд рдХрдо рдпрд╛ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╕реНрдЯреЛрд░ рдХрд░рддреА рд╣реИрдВред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рд╡реЗ рдЕрдкрдирд╛ рд╕рд╛рд░рд╛ рдбреЗрдЯрд╛ GC рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдореЗрдВ рд╕реНрдЯреЛрд░ рдХрд░реЗрдВрдЧреЗред рдпрджрд┐ рдЗрдирдореЗрдВ рд╕реЗ рджреЛ рднрд╛рд╖рд╛рдПрдВ рд╕рдВрд╡рд╛рдж рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреА рд╣реИрдВ, рддреЛ рдЗрди рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЛ рдХреЗрд╡рд▓ рдмрд╛рдЗрдЯреНрд╕ рдХреА рдзрд╛рд░рд╛ рдореЗрдВ рдХреНрд░рдордмрджреНрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рддреБрд░рдВрдд deserialize рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдирд╛рд╡рд╢реНрдпрдХ рдУрд╡рд░рд╣реЗрдб рд╣реЛрдЧрд╛ред

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

рдЯреАрдПрд▓; рдбреАрдЖрд░: рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдореЙрдбреНрдпреВрд▓ рдЗрдВрдЯрд░рдСрдк рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рд╕рд╣рдордд рд╣реИрдВ рдЬрд╣рд╛рдВ рд╕рд╛рдЭрд╛ рд░реИрдЦрд┐рдХ рд╕реНрдореГрддрд┐ рдЦреЗрд▓ рдореЗрдВ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рд╛рдЭрд╛ рд╕реНрдореГрддрд┐ _is_ рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдФрд░ рдореМрдЬреВрджрд╛ рднрд╛рд╖рд╛ рд╕рдорд░реНрдерди рдХреЗ рдХрд╛рд░рдг рд╕реА рдПрдмреАрдЖрдИ рдЙрд╕ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд╡рд┐рдХрд▓реНрдк рд╣реИред рдореЗрд░реА рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкреНрд░рд╕реНрддрд╛рд╡ рдЬреИрд╕реЗ-рдЬреИрд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрдЧрд╛, рджреЛрдиреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдЧрд╛ред

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

рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдкрдХреНрд╖рдкрд╛рддреА рд╣реВрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ FlatBuffers рдмрдирд╛рдпрд╛, рдЬреЛ рджрдХреНрд╖рддрд╛ рдореЗрдВ Cap'n Proto рдХреЗ рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХ рд▓рдЪреАрд▓рд╛ рдФрд░ рдЕрдзрд┐рдХ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рд╕рдорд░реНрдерд┐рдд рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐ рдореИрдВ рдЗрд╕ рдкреНрд░рд╛рд░реВрдк рдХреЛ wasm рджреНрд╡рд╛рд░рд╛ рдЕрдирд┐рд╡рд╛рд░реНрдп рдХрд░рдиреЗ рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ред

рдРрд╕реЗ рдХрдИ рдЕрдиреНрдп рдкреНрд░рд╛рд░реВрдк рд╣реИрдВ рдЬреЛ рдХреБрдЫ рдирд┐рд╢реНрдЪрд┐рдд рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЗрди рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

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

рдЬрдмрдХрд┐ рдореИрдВ рд╕реВрдХреНрд╖реНрдо рд░реВрдк рд╕реЗ рдЖрддреНрдо-рдкреНрд░рдЪрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдореИрдВ рд▓реЛрдЧреЛрдВ рдХреЛ рдлреНрд▓реЗрдХреНрд╕рдмрдлрд░ рдкрд░ рдЗрдВрдЧрд┐рдд рдХрд░ рд╕рдХрддрд╛

@aardappel

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

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

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

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

рдореБрдЭреЗ рдЕрдкреАрд▓ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣реА рд╣реИ, рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд▓рд┐рдЦрддреЗ рд╕рдордп рдЖрдк рдЬреНрдпрд╛рджрд╛рддрд░ рдпрд╣реА рдЪрд╛рд╣рддреЗ рд╣реИрдВред JSON (рднрдпрд╛рдирдХ рдкрд╛рд░реНрд╕ рд╕рдордп рд╕реЗ рдЕрд▓рдЧ) рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдЖрдк рдЕрдкрдиреЗ рдХреЛрдб рдореЗрдВ рдХрд╣реАрдВ JSON рдСрдмреНрдЬреЗрдХреНрдЯ рдЖрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЕрдкрдиреЗ рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕реИрдирд┐рдЯрд╛рдЗрдЬрд╝рд┐рдВрдЧ рдХреЛрдб рд▓рд┐рдЦрдирд╛ рд╕рдорд╛рдкреНрдд рдХрд░ рджреЗрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ:

assert(myObj.foo);
assert(isJsonObject(myObj.foo));
assert(myObj.foo.bar);
assert(isString(myObj.foo.bar));
loadUrl(myObj.foo.bar);

рд╕рдВрднрд╛рд╡рд┐рдд рд╕реБрд░рдХреНрд╖рд╛ рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдпрджрд┐ рдЖрдк рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред

рдпрд╣ рднреА рджреЗрдЦреЗрдВ 6 - рдКрдкрд░


@bitwalker

рдареАрдХ рд╣реИ, рдореИрдВрдиреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд╛рдЭрд╛ рд░реИрдЦрд┐рдХ рд╕реНрдореГрддрд┐ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдпрд╣ рдХрд┐рддрдирд╛ рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рд╣реИ, рдФрд░ рдХреНрдпрд╛ рдпрд╣ рдЗрдВрдЯрд░-рдореЙрдбреНрдпреВрд▓ рдХреЙрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реИ, рдЗрд╕ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдореБрдЭрд╕реЗ ( @lukewagner ?) рд╡реЗрдмрд╕реИрдореНрдк рдбрд┐рдЬрд╛рдЗрди рд╕реЗ рдЕрдзрд┐рдХ рдкрд░рд┐рдЪрд┐рдд рдХрд┐рд╕реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА; рдпрд╣ рдЗрд╕ рдмрд╛рдд рдкрд░ рднреА рдирд┐рд░реНрднрд░ рдХрд░реЗрдЧрд╛ рдХрд┐ рдПрдлрдПрдлрдЖрдИ рдХрд┐рддрдиреА рдорд╛рдиреНрдпрддрд╛рдУрдВ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ рд╡рд╛рд╕реНрдо рдХреЗ рдореЗрдореЛрд░реА рд▓реЗрдЖрдЙрдЯ рджреНрд╡рд╛рд░рд╛ рдЕрдорд╛рдиреНрдп рд╣реИрдВред

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

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЗрд╕ рд╕реВрддреНрд░ рдкрд░ Cap'n Proto рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдХреБрдЫ рдХрд╣рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдЕрдЬреАрдм рддрд░рд╣ рд╕реЗ, рдореИрдВрдиреЗ рдпрд╣ рдирд╣реАрдВ рдкрд╛рдпрд╛ рдХрд┐ рдореЗрд░реА рдХреЛрдИ рд░рд╛рдп рд╣реИред рдореИрдВ рдХреБрдЫ рдЖрд╕рдиреНрди рд╡рд┐рдЪрд╛рд░ рд╡реНрдпрдХреНрдд рдХрд░рддрд╛ рд╣реВрдВ рдЬреЛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВ рднреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

рдореИрдВ рдХреНрд▓рд╛рдЙрдбрдлреНрд▓реЗрдпрд░ рд╡рд░реНрдХрд░реНрд╕ рдХрд╛ рддрдХрдиреАрдХреА рдиреЗрддреГрддреНрд╡ рднреА рд╣реВрдВ, рдЬреЛ рдПрдХ "рд╕рд░реНрд╡рд░ рд░рд╣рд┐рдд" рд╡рд╛рддрд╛рд╡рд░рдг рд╣реИ рдЬреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдбрдмреНрд▓реНрдпреВрдПрдПрд╕рдПрдо рдЪрд▓рд╛рддрд╛ рд╣реИред

рд╣рдо рд╢реНрд░рдорд┐рдХреЛрдВ рдХреЗ рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рдмрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд░реВрдк рдореЗрдВ Cap'n Proto RPC рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рд╡реЗ HTTP рддрдХ рд╕реАрдорд┐рдд рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдмрд╛рд░ рдХрд╛рдлреА рдХрдо рд╕реЗрдЯ рд╣реИред :)

рд╡рд░реНрдХрд░реНрд╕ рдореЗрдВ, рдЬрдм рдПрдХ рд╡рд░реНрдХрд░ рджреВрд╕рд░реЗ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЖрдорддреМрд░ рдкрд░ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рджреЛрдиреЛрдВ рдПрдХ рд╣реА рдорд╢реАрди рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рд╣реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рднреАред рдЗрд╕ рдХрд╛рд░рдг рд╕реЗ, Cap'n Proto рдЬреИрд╕рд╛ рд╢реВрдиреНрдп-рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдХреНрд░рдорд╛рдВрдХрди рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдмрд╣реБрдд рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ WASM рд╡рд░реНрдХрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рд░реИрдЦрд┐рдХ рдореЗрдореЛрд░реА рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдЙрдирдХреЗ рдмреАрдЪ рд╢рд╛рд░реАрд░рд┐рдХ рд░реВрдк рд╕реЗ рд╕рд╛рдЭрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

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

рдЗрд╕ рдмреАрдЪ WASM рднреВрдорд┐ рдореЗрдВ, WASI рдПрдХ рдХреНрд╖рдорддрд╛-рдЖрдзрд╛рд░рд┐рдд API рдкреЗрд╢ рдХрд░ рд░рд╣рд╛ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдБ рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдк "рддрд╛рд▓рдореЗрд▓" рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдЙрди рд╕рднреА рдХреЗ рд╕рд╛рде, Cap'n рдкреНрд░реЛрдЯреЛ рдХреЗ рдХрдИ рдбрд┐рдЬрд╝рд╛рдЗрди рд▓рдХреНрд╖реНрдп FFI рдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖ рд╕рдХрддреЗ рд╣реИрдВ:

  • Cap'n рдкреНрд░реЛрдЯреЛ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рд╕реНрдерд┐рддрд┐-рд╕реНрд╡рддрдВрддреНрд░ рдФрд░ рд╕рдиреНрдирд┐рд╣рд┐рдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рддрд╛рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдкрддрд╛ рд╕реНрдерд╛рди рдХреЗ рдмреАрдЪ рдкреНрд░реЗрд╖рд┐рдд рдФрд░ рд╕рд╛рдЭрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдкреЙрдЗрдВрдЯрд░реНрд╕ рд╕рд╛рдкреЗрдХреНрд╖ рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рд╕рдВрджреЗрд╢ рдореЗрдВ рд╕рднреА рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рд╕рдиреНрдирд┐рд╣рд┐рдд рдореЗрдореЛрд░реА, рдпрд╛ рдХрдо рд╕реЗ рдХрдо рд╕реЗрдЧрдореЗрдВрдЯ рдореЗрдВ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдпрд╣ рджреЗрд╢реА рд╡рд╕реНрддреБрдУрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдореЙрдбрд▓ рдХреЛ рдХрд╛рдлреА рдЬрдЯрд┐рд▓ рдмрдирд╛рддрд╛ рд╣реИред рдПрдХ рд╣реА рд░реИрдЦрд┐рдХ рдореЗрдореЛрд░реА рд╕реНрдкреЗрд╕ рдХреЗ рднреАрддрд░ рдПрдлрдПрдлрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдпрд╣ рдУрд╡рд░рд╣реЗрдб рдмрд░реНрдмрд╛рдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдореВрд▓ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХреЛ рдвреЗрд░ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
  • Cap'n рдкреНрд░реЛрдЯреЛ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рд╕реНрдХреАрдорд╛ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдмреАрдЪ рдЖрдЧреЗ рдФрд░ рдкреАрдЫреЗ-рд╕рдВрдЧрдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕реНрдХреАрдорд╛ рдХреЛ рдЬрд╛рдиреЗ рдмрд┐рдирд╛ рд╡рд╕реНрддреБрдУрдВ рдФрд░ рдЙрдк-рдкреЗрдбрд╝реЛрдВ рдХреЛ рджреЛрд╖рд░рд╣рд┐рдд рд░реВрдк рд╕реЗ рдХреЙрдкреА рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдкреНрд░рдХрд╛рд╢ рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рд╕реАрдзреЗ рд╕рд╛рдордЧреНрд░реА рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕реЗ Cap'n Proto рдкреНрд░рддреНрдпреЗрдХ рд╕реВрдЪрдХ рдкрд░ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдиреНрдХреЛрдб рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ FFI рдкрд░ рд╕рдВрдЪрд╛рд░ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рджреЛ рдореЙрдбреНрдпреВрд▓ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
  • Cap'n Proto RPC рдХрд╛ рд╡рд╛рджрд╛ рдкрд╛рдЗрдкрд▓рд╛рдЗрдирд┐рдВрдЧ, рдкрде-рдЫреЛрдЯрд╛, рдФрд░ рдСрд░реНрдбрд░ рджреЗрдиреЗ рдХреА рдЧрд╛рд░рдВрдЯреА рддрдм рд╕рдордЭ рдореЗрдВ рдЖрддреА рд╣реИ рдЬрдм рдХреЙрд▓рд░ рдФрд░ рдХреИрд▓реА рдХреЗ рдмреАрдЪ рдЧреИрд░-рдирдЧрдгреНрдп рд╡рд┐рд▓рдВрдмрддрд╛ рд╣реЛрддреА рд╣реИред рдПрдХрд▓ рд╕реАрдкреАрдпреВ рдкрд░ рдПрдлрдПрдлрдЖрдИ рдореЗрдВ рдРрд╕реА рдХреЛрдИ рд╡рд┐рд▓рдВрдмрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╡рд╛рджрд╛ рдкрд╛рдЗрдкрд▓рд╛рдЗрдирд┐рдВрдЧ рдорд╢реАрдирд░реА рд╢рд╛рдпрдж рд╕рд┐рд░реНрдл рд╕рд╛рдЗрдХрд┐рд▓ рдмрд░реНрдмрд╛рдж рдХрд░рддреА рд╣реИред

рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдореЗрдВ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рддреИрдирд╛рдд рдореЙрдбреНрдпреВрд▓ рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ Cap'n Proto рдмрд╣реБрдд рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдПрдХ рд╣реА рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдореЗрдВ рдПрдХ рд╕рд╛рде рддреИрдирд╛рдд рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╢рд╛рдпрдж рдЕрдзрд┐рдХ рд╣реИред

рдкреНрд░рддрд┐рдкреБрд╖реНрдЯрд┐ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

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

рдореИрдВ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ wasm (рдКрдкрд░ рджреЗрдЦреЗрдВ) рдХреЗ рд▓рд┐рдП рд╕рд╛рдЭрд╛ рд░реИрдЦрд┐рдХ рд╕реНрдореГрддрд┐ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд┐рддрдирд╛ рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рд╣реИред

рдЙрд╕ рдиреЗ рдХрд╣рд╛, рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ, рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд░рд┐рд╢реНрддреЗрджрд╛рд░ рдкреЙрдЗрдВрдЯрд░реНрд╕ рд╕реЗ рдУрд╡рд░рд╣реЗрдб рдЗрддрдирд╛ рдмреБрд░рд╛ рд╣реЛрдЧрд╛ред WebAssembly рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд░реИрдЦрд┐рдХ рдореЗрдореЛрд░реА рдХреА рд╢реБрд░реБрдЖрдд рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдСрдлрд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ) рдореЗрдВ ADD рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рджреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрд░рдХреАрдмреЗрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╕рд╛рдкреЗрдХреНрд╖ рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдКрдкрд░реА рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рд╢рд╛рдпрдж рджреВрд░ рднреА рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

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

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

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

рдореИрдВ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ wasm (рдКрдкрд░ рджреЗрдЦреЗрдВ) рдХреЗ рд▓рд┐рдП рд╕рд╛рдЭрд╛ рд░реИрдЦрд┐рдХ рд╕реНрдореГрддрд┐ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд┐рддрдирд╛ рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рд╣реИред

рдЖрд╣, рдЯреАрдмреАрдПрдЪ рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЪрд░реНрдЪрд╛ рдХреЗ рдЙрд╕ рд╣рд┐рд╕реНрд╕реЗ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рдкрд╛рд╕ рдкрд░реНрдпрд╛рдкреНрдд рд╕рдВрджрд░реНрдн рд╣реИред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕рд╛рдЭрд╛ рдкрддрд╛ рд╕реНрдерд╛рди рдирд╣реАрдВ рд╣реИ, рддреЛ рд╣рд╛рдБ, Cap'n Proto рдмрд╣реБрдд рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИред

рдореБрдЭреЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рдкреНрд░рд╛рд░реВрдкреЛрдВ рдХреЛ рдбрд┐рдЬрд╛рдЗрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рд▓рд╛рд╣ рджреЗрдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛ рд░рд╣реА рд╣реИред рдПрдлрдбрдмреНрд▓реНрдпреВрдЖрдИрдбрдмреНрд▓реНрдпреВ рдХреИрдк'рдПрди рдкреНрд░реЛрдЯреЛ рдореЗрдВ рдХреБрдЫ рдЫреЛрдЯреА рдЪреАрдЬреЗрдВ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВ рдмрджрд▓ рджреВрдВрдЧрд╛ рдЕрдЧрд░ рдореБрдЭреЗ рдЙрди рдРрдкреНрд╕ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрддрд╛ рдХреА рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдЖрдЬ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реИрдВ ... рдпрд╣ рдЬреНрдпрд╛рджрд╛рддрд░, рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рдкреЙрдЗрдВрдЯрд░ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рд╡рд┐рд╡рд░рдг рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ред

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

рдереЛрдбрд╝рд╛ рд╕рд╛ рд╡рд┐рд╖рдп, рд▓реЗрдХрд┐рди рдПрдХреНрд╕рдУрдЖрд░ рдЪреАрдЬ рдПрдХ рдЕрдиреБрдХреВрд▓рди рд╣реИ, рдУрд╡рд░рд╣реЗрдб рдирд╣реАрдВ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рд╢реВрдиреНрдп-рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдорд╛рдорд▓реЗ рдореЗрдВ рднреАред рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕рднреА рд╕рдВрд░рдЪрдирд╛рдПрдВ рд╢реВрдиреНрдп-рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдпрджрд┐ рдмрдлрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╢реВрдиреНрдп рд╣реИ (рдЬреЛ рдЕрдХреНрд╕рд░ рд╡реИрд╕реЗ рднреА рд╣реЛрдЧрд╛) рддреЛ рдЖрдкрдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдЖрд╡рдВрдЯрди рдкрд░ рдХреЛрдИ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдПрдХ рд╕рдВрдХрд▓рди-рд╕рдордп рд╕реНрдерд┐рд░рд╛рдВрдХ рдХреЗ рд╡рд┐рд░реБрджреНрдз рдПрдХ XOR рдореЗрдВ рд╕рдВрднрд╡рддрдГ 1 рдЪрдХреНрд░ рдЦрд░реНрдЪ рд╣реЛрддрд╛ рд╣реИ рдЬрдмрдХрд┐ рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреА рдореЗрдореЛрд░реА рдПрдХреНрд╕реЗрд╕ рдХреА рд▓рд╛рдЧрдд рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реЛрдЧреАред

@lukewagner "рд░реИрдЦрд┐рдХ рд╕реНрдореГрддрд┐ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛" рднрд╛рдЧ рдкрд░ рдХреЛрдИ рд╡рд┐рдЪрд╛рд░?

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд░реИрдЦрд┐рдХ рд╕реНрдореГрддрд┐ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдФрд░ рд╕рд╛рдЭрд╛ рдирд╣реАрдВ рдХрд░рдиреЗ рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рд╣реИрдВ рдФрд░ рдЖрдЦрд┐рд░рдХрд╛рд░ рдЯреВрд▓ рдХреЛ рджреЛрдиреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

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

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

рдЕрдВрдд рдореЗрдВ рдЗрд╕реЗ рдкреВрд░рд╛ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдореЗрд░реА рд╕реЛрдЪ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ (рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рдЯрд┐рдкреНрдкрдгреА рдмреЙрдХреНрд╕ рдмрд╣реБрдд рдЫреЛрдЯрд╛ рд╣реИ?)

рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдореИрдВ рдЕрдВрддрд░-рдореЙрдбреНрдпреВрд▓ рд╕рдВрдЪрд╛рд░ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рд╕реНрдХреАрдорд╛ рдХреЗ рд╕рд╛рде рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рд╣рдореЗрдВ Cap'nProto рдХреНрд░рдорд╛рдВрдХрди рдкреНрд░рд╛рд░реВрдк рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд╣рдо рдХреЗрд╡рд▓ рд╕реНрдХреАрдорд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рд╕рдордп рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ Cap'nProto рдХреА рд╕реНрдХреАрдорд╛ рднрд╛рд╖рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореЗрд░реА рдХреЛрдИ рд░рд╛рдп рдирд╣реАрдВ рд╣реИред

WASI/ESM+npm рдкрд░рд┐рдкреНрд░реЗрдХреНрд╖реНрдп рд╕реЗ, рдЗрд╕ рдлреЙрд░реНрдо рдХрд╛ рд╕рдорд╛рдзрд╛рди рдореЗрд░реЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЬреНрдпрд╛рджрд╛ рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИред рдпрд╣ рд╕рд╛рдЭрд╛ рдПрдмреАрдЖрдИ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд┐рдП рдмрд┐рдирд╛, рдПрдмреАрдЖрдИ рдкрд░ рдПрдХ рдЕрдореВрд░реНрддрддрд╛ рд╣реИред рдпрд╣ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдПрдХ рд╕реНрдХреАрдорд╛-рд▓реИрдВрдЧ рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдФрд░ рдЗрди рднрд╛рд╖рд╛ рд╕реАрдорд╛рдУрдВ рдХреЛ рджреЛрдиреЛрдВ рд╕рд┐рд░реЛрдВ рдкрд░ рджреЗрд╢реА-рдкреНрд░рддреАрдд рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдПрдмреАрдЖрдИ рдХреЗ рд╕рд╛рде рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдореЗрдЬрдмрд╛рди рдХреЛ рдЕрдиреБрд╡рд╛рдж рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдорд┐рд▓рддреА рд╣реИред

рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдпрд╣ рдХрд┐рд╕реА рдЕрдиреНрдп рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХ рд╕рдордиреНрд╡рдп рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЛ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ: рдпрджрд┐ рдЖрдк рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдПрдХ рдПрдмреАрдЖрдИ рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдмреАрдЖрдИ, рдХрд┐рд╕реА рднреА рдПрдмреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЪрд╛рд╣реЗ рд╡рд╣ рд╕реА рдпрд╛ рд╣рд╛рд╕реНрдХреЗрд▓ рд╣реЛред рдпрджрд┐ рдЖрдк рд╕рднреА рд╡рд╛рд╕рдо рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдФрд░ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рд╣рд▓ рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╕рдорд╕реНрдпрд╛ рд╣реИред рдпрд╣ рдХреЗрд╡рд▓ рддрднреА рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЖрдк рдПрдирдкреАрдПрдо рдорд╛рдорд▓реЗ рдореЗрдВ рдЖрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдЖрдк рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдЕрдЬреНрдЮрд╛рдд рдХреЛрдб рд▓реЛрдб рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЖрдк рдЗрд╕рдХреА рд╕реНрд░реЛрдд рднрд╛рд╖рд╛ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ, рдХрд┐ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдмреАрдЪ рд╕реНрдХреАрдорд╛-рд╕реНрддрд░реАрдп рдЗрдВрдЯрд░рдСрдк рд╣реЛрдиреЗ рдЬреИрд╕рд╛ рдХреБрдЫ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рдЖрдХрд░реНрд╖рдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдпрд╛ рддреЛ рд╡рд╛рд╕рдо рдХреЗ рдПрд▓рд╕реАрдбреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдЬрд┐рд╕рдХрд╛ рдореИрдВ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рддрд╛ рд╣реВрдВ рдХрд┐ рджреЗрд╢реА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╕рдорд╛рди рдЪрд╛рдк рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░реЗрдЧрд╛, рдФрд░ рд╕реА рдПрдмреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ - рдпрд╛ рд╣рдо рд╕реНрдХреАрдорд╛ рднрд╛рд╖рд╛ рдореЗрдВ рдПрдиреНрдХреЛрдбреЗрдб рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдПрд▓рд╕реАрдбреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рд╕реНрдХреАрдорд╛ рдЖрд╡рд╢реНрдпрдХрддрд╛ 2 рдмрдирд╛рдХрд░ рдЕрдзрд┐рдХ рд▓рдЪреАрд▓реА рд╣реЛ рд╕рдХрддреА рд╣реИ 2) рдПрдХ рдирд░рдо рдЖрд╡рд╢реНрдпрдХрддрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╕реА рд╕реЗ рд░рд╕реНрдЯ рдХреЛ рдирд┐рдо рдореЗрдВ рдХреБрд╢рд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рд╕реА рд╕реЗ рд╣рд╛рд╕реНрдХреЗрд▓ рдореЗрдВ рдЕрдзрд┐рдХ рдУрд╡рд░рд╣реЗрдб рд╣реЛрдирд╛ рдПрдХ рдбреАрд▓рдмреНрд░реЗрдХрд░ рдирд╣реАрдВ рд╣реИред

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

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

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

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

рдФрд░ рдпрд╣рд╛рдВ "рд╣рд╛рд╕реНрдХреЗрд▓" рд╣рд░ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рдмрд╕ рдПрдХ рд╕реНрдЯреИрдВрдб-рдЗрди рд╣реИред рдЕрдзрд┐рдХрд╛рдВрд╢ рднрд╛рд╖рд╛рдПрдВ рд╕реА-рдЬреИрд╕реА рдирд╣реАрдВ рд╣реИрдВред

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

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

рдФрд░ рдпрд╣рд╛рдВ "рд╣рд╛рд╕реНрдХреЗрд▓" рд╣рд░ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рдмрд╕ рдПрдХ рд╕реНрдЯреИрдВрдб-рдЗрди рд╣реИред рдЕрдзрд┐рдХрд╛рдВрд╢ рднрд╛рд╖рд╛рдПрдВ рд╕реА-рдЬреИрд╕реА рдирд╣реАрдВ рд╣реИрдВред

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

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

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

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

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

рд╣реЛрд╕реНрдЯ рд╕реНрдХреАрдорд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рд╕реНрдХреАрдорд╛ рдмрд╛рдЗрдЯреНрд╕ рдХрд╛ рдмрд┐рд▓реНрдХреБрд▓ рднреА рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ рдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рд╡рд░рдг рджреЗрддрд╛ рд╣реИред рдпрд╣ рд╡реЗрдмрдЖрдИрдбреАрдПрд▓ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рдбрд┐рдЬрд╛рдЗрди рд╕реЗ рдЙрдзрд╛рд░ рд▓реЗ рд░рд╣рд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдк рдмрд┐рдЯ рд╕реА рд╕реНрдЯреНрд░рдХреНрдЪрд░ рд╕реЗ рд╡реЗрдмрдЖрдИрдбреАрдПрд▓ рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рд░реВрдкрд╛рдВрддрд░рдг рдореЗрдВ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдбрд┐рдЬрд╝рд╛рдЗрди WebIDL рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдмрдЬрд╛рдп Wasm Abstract Interface Types (рдореИрдВ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдирд╛рдо: WAIT рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рд╡реЗрдмрдЖрдИрдбреАрдПрд▓ рдкреНрд░рд╕реНрддрд╛рд╡ рдореЗрдВ рд╣рдореЗрдВ "рд╡реЗрдмрдЖрдИрдбреАрдПрд▓ рдореЗрдВ рдЕрдиреБрд╡рд╛рджрд┐рдд" рд╣реЛрдиреЗ рдкрд░ рдбреЗрдЯрд╛ рдХреЗ рдмрд╛рдЗрдирд░реА рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдпрд╛ рдЕрдирд┐рд╡рд╛рд░реНрдп рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдмреАрдЪ рдореЗрдВ рдмрд┐рдирд╛ рд░реБрдХреЗ рд╕реАрдзреЗ рд╡рд╛рд╕рдо рд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдПрдкреАрдЖрдИ рддрдХ рдЬрд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

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

рдУрд╣, 100% рд╕рд╣рдордд рд╣реВрдБред рдореБрдЭреЗ рдЗрд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрджрд╛рд╣рд░рдг рд╕рдорд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛: рдЗрд╕ рдмреАрдЪ, рд╣рд╛рд╕реНрдХреЗрд▓ рд╕реЗ рдПрд▓реНрдо рд╕реЗ рд╕реА # рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдХреБрд╢рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╡реЗ рд╡рд╛рд╕рдо рдЬреАрд╕реА рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ), рд▓реЗрдХрд┐рди рд╕реА # рд╕реЗ рдЬрдВрдЧ рдореЗрдВ рдУрд╡рд░рд╣реЗрдб рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рднрд╛рд╖рд╛ рдкреНрд░рддрд┐рдорд╛рдиреЛрдВ рдореЗрдВ рдХреВрджрддреЗ рд╕рдордп рдУрд╡рд░рд╣реЗрдб рд╕реЗ рдмрдЪрдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИред

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

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

рдХреЙрд▓ рдЪреЗрди рд╕реЗ рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ:

  1. рд╕реА -> рдЬрдВрдЧ -> рдЬрд╝рд┐рдЧ -> рдлреЛрд░рдЯреНрд░рд╛рди, рдХреБрд╢рд▓
  2. рд╣рд╛рд╕реНрдХреЗрд▓ -> рд╕реА # -> рд╣рд╛рд╕реНрдХреЗрд▓, рдХреБрд╢рд▓
  3. рд╕реА -> рд╣рд╛рд╕реНрдХреЗрд▓ -> рдЬрдВрдЧ -> рдпреЛрдЬрдирд╛, рдЕрдХреНрд╖рдо
  4. рдЬрд╛рд╡рд╛ -> рдЬрдВрдЧ, рдЕрдХреНрд╖рдо

рдФрд░ рдпрд╣рд╛рдВ "рд╣рд╛рд╕реНрдХреЗрд▓" рд╣рд░ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рдмрд╕ рдПрдХ рд╕реНрдЯреИрдВрдб-рдЗрди рд╣реИред рдЕрдзрд┐рдХрд╛рдВрд╢ рднрд╛рд╖рд╛рдПрдВ рд╕реА-рдЬреИрд╕реА рдирд╣реАрдВ рд╣реИрдВред

рд╣рд╛рдВ, рд╣рд╛рд╕реНрдХреЗрд▓ рдХреЛ рдПрдХ рдареЛрд╕ рднрд╛рд╖рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдкреАрдЫреЗ рдореЗрд░рд╛ рдЗрд░рд╛рджрд╛ рдерд╛ред (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдирд┐рдо рд╢рд╛рдпрдж рд╕реА-рдЬреИрд╕реА рднрд╛рд╖рд╛ рдХрд╛ рдПрдХ рдмреБрд░рд╛ рдЙрджрд╛рд╣рд░рдг рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЬреАрд╕реА рдХрд╛ рднреА рднрд╛рд░реА рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ)

--

рдЕрдореВрд░реНрдд рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдиреЗ рдХрд╛ рдПрдХ рдФрд░ рддрд░реАрдХрд╛ рдЖрдИрдЖрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╣реИред рдЬрд┐рд╕ рддрд░рд╣ рдПрд▓рдПрд▓рд╡реАрдПрдо рдХрдИ-рд╕реЗ-рдПрдХ-рд╕реЗ-рдЕрдиреЗрдХ рд╕рдВрдмрдВрдз (рдХрдИ рднрд╛рд╖рд╛рдПрдВ -> рдПрдХ рдЖрдИрдЖрд░ -> рдХрдИ рд▓рдХреНрд╖реНрдп) рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ, рдЙрд╕реА рддрд░рд╣ рдЕрдореВрд░реНрдд рдкреНрд░рдХрд╛рд░ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдХрдИ-рд╕реЗ-рдХрдИ рдореИрдкрд┐рдВрдЧ рдореЗрдВ рдордзреНрдпрд╕реНрдерддрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ + рдореЗрдЬрдмрд╛рди -> рднрд╛рд╖рд╛ + рдореЗрдЬрдмрд╛рдиред рдЗрд╕ рдбрд┐рдЬрд╝рд╛рдЗрди рд╕реНрдкреЗрд╕ рдореЗрдВ рдХреБрдЫ N^2 рдореИрдкрд┐рдВрдЧ рд╕рдорд╕реНрдпрд╛ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ N+N рдореЗрдВ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред

рд╣реЛрд╕реНрдЯ рд╕реНрдХреАрдорд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред

рдЦреИрд░, рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдХреБрдЫ рд▓рд╛рдЧреВ

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

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

рдореЗрдЬрдмрд╛рди рдХреЛ рдХреБрдЫ рднреА рдЙрдореНрдореАрдж рдирд╣реАрдВ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред рдЕрдзрд┐рдХ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдПрдХ рдЙрджрд╛рд╣рд░рдг рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рд╡реЗрдмрд┐рдбрд▓-рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП , рд╣рдорд╛рд░реЗ рдкрд╛рд╕ utf8-cstr рдФрд░ utf8-str , рдЬреЛ рдХреНрд░рдорд╢рдГ i32 (ptr) рдФрд░ i32 (ptr), i32 (len) рд▓реЗрддреЗ рд╣реИрдВред рдЙрдирдХреЗ рдмреАрдЪ рдареЛрд╕ рд░реВрдк рд╕реЗ рдорд╛рдирдЪрд┐рддреНрд░ рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП "рдореЗрдЬрдмрд╛рди рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдЗрд╕реЗ рд╕реА-рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ" рдореЗрдВ рдЕрдирд┐рд╡рд╛рд░реНрдп рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рддреЛ, рдкреНрд░рддреНрдпреЗрдХ рдореЙрдбреНрдпреВрд▓ рдХреБрдЫ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рд╣рд╛рдВ, рд▓реЗрдХрд┐рди рдбреЗрдЯрд╛ рдХреЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЛ рд╕рд╛рд░ рдбреЗрдЯрд╛/рд╕реНрдХреАрдорд╛ рдкрд░рдд рдореЗрдВ рд╡реНрдпрдХреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдпрд╣ рд╣рдореЗрдВ рдЙрд╕ рдбреЗрдЯрд╛ рд▓реЗрдЖрдЙрдЯ рдкрд░ рдЕрдореВрд░реНрдд рдХрд░рдиреЗ рдХреА рд╕рдВрдкрддреНрддрд┐ рджреЗрддрд╛ рд╣реИред
рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдпрд╣ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рд▓реЗрдпрд░ рдкрд░ рдПрдХреНрд╕реНрдЯреЗрдВрд╕рд┐рдмрд▓ рд╣реИ рдЬреЛ рдХрдВрдХреНрд░реАрдЯ рд╡рд╛рд╕рдо рдкреНрд░рдХрд╛рд░ рдФрд░ рдЕрдореВрд░реНрдд рдордзреНрдпрд╡рд░реНрддреА рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдмреАрдЪ рдореИрдк рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд╕реНрдХреЗрд▓ рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП (рдЬреЛ рдореЙрдбрд▓ рд╡рд░реНрдгреЛрдВ рдФрд░ рд╡рд░реНрдгреЛрдВ рдХреЗ рд╕рд░рдгреА рджреЛрдиреЛрдВ рдХреА рд╡рд┐рдкрдХреНрд╖ рд╕реВрдЪреА рдХреЗ рд░реВрдк рдореЗрдВ рддрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ), рд╣рдо utf8-cons-str рдФрд░ utf8-array-str рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВ (рдФрд░ рдорд╛рдиреНрдп) wasm рдкреНрд░рдХрд╛рд░ (рд╡рд░реНрддрдорд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) gc рдкреНрд░рд╕реНрддрд╛рд╡ рд╕рд┐рдВрдЯреИрдХреНрд╕) (type $haskellString (struct (field i8) (field (ref $haskellString)))) рдФрд░ (type $haskellText (array i8)) ред

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

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

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

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

рдХреБрдЫ рд╕рдВрднрд╛рд╡рд┐рдд рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡:

  • рд╕реА-рд╕реНрдЯрд╛рдЗрд▓ рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдФрд░ рдкреЙрдЗрдВрдЯрд░реНрд╕ред
  • рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХреИрдкрдирдкреНрд░реЛрдЯреЛ рдмрд╛рдЗрдЯреНрд╕ред
  • рдЬреАрд╕реА рдХрдХреНрд╖рд╛рдПрдВред
  • рдЧреЗрдЯрд░реНрд╕ рдФрд░ рд╕реЗрдЯрд░реНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреНрд▓реЛрдЬрд░ред
  • рдкрд╛рдпрдерди-рд╢реИрд▓реА рдХреЗ рд╢рдмреНрджрдХреЛрд╢ред

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

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

рдЖрдк рдЬрд┐рд╕ рдореМрдЬреВрджрд╛ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд░рд╣реЗ рд╣реИрдВ, рдЙрд╕рдХреА рдЧреНрд░реИрдиреНрдпреБрд▓реИрд░рд┐рдЯреА рдХреЗ рд╕реНрддрд░ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред N<->N рднрд╛рд╖рд╛рдПрдВ рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрднрд╛рд╡рд┐рдд рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЛ 2*N*N рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХрд░рддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди N<->IR 2*N рд╣реИ, рдФрд░ рдЖрдЧреЗ рдпрджрд┐ рдЖрдк N<->[common рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рд╕реНрдЯрд╛рдЗрд▓]<->IR рдХрд╣рддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ рд╕рдВрдЦреНрдпрд╛ рд╕рд╛рдорд╛рдиреНрдп рд╕реНрд╡рд░реВрдкреЛрдВ рдореЗрдВ k рд╣реИ, рдЖрдк 2*k рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬрд╣рд╛рдБ k < N.

рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд рдпреЛрдЬрдирд╛ рдХреЗ рд╕рд╛рде, рдЖрдкрдХреЛ рдпреЛрдЬрдирд╛ рдореБрдлреНрдд рдореЗрдВ рдорд┐рд▓рддреА рд╣реИ (рдпрд╣ utf8-cons-str рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧреА)ред рдпрджрд┐ рдЬрд╛рд╡рд╛ рдореЙрдбрд▓ рдЪрд╛рд░ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рднреА рддрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ utf8-array-str рдмрд╛рдзреНрдпрдХрд╛рд░реА рд╣реИред рдпрджрд┐ рдирд┐рдо рд╣реБрдб рдХреЗ рдиреАрдЪреЗ string_views рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рддреЛ utf8-str ред рдпрджрд┐ Zig C ABI рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИ, рддреЛ utf8-cstr . (рдореИрдВ рдЬрд╛рд╡рд╛/рдирд┐рдо/рдЬрд╝рд┐рдЧ рдХреЗ рдПрдмреАрдЖрдИ рдирд╣реАрдВ рдЬрд╛рдирддрд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ рдкрд╣рд▓реЗ рдареЛрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдерд╛)

рддреЛ, рд╣рд╛рдБ, рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрднрд╛рд╡рд┐рдд рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдВрдзрди рдирд╣реАрдВ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдо рдЕрдзрд┐рдХрд╛рдВрд╢ рднрд╛рд╖рд╛рдУрдВ рдХреЛ рдХрд╡рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐ IR рдкреНрд░рдХрд╛рд░ рдореЗрдВ рдХреБрдЫ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рдЕрд╕рд╣рдорддрд┐ рдХреЗ рд▓рд┐рдП рдЬрдЧрд╣ рд╣реИ, "рдХреБрдЫ" рдХрд┐рддрдиреЗ рдмрд╛рдзреНрдпрдХрд╛рд░реА рд╣реИрдВ, рдореАрдард╛ рд╕реНрдерд╛рди рдХреНрдпрд╛ рд╣реИ, рдорд╛рдирджрдВрдб рдХрд┐рддрдирд╛ рд╕рдЦреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╣рдо рдХрд┐рд╕реА рднрд╛рд╖рд╛ рдХреЗ рдПрдмреАрдЖрдИ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВ?
рдореЗрд░реЗ рдкрд╛рд╕ рдЗрди рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЦрд╛рд╕ рдЬрд╡рд╛рдм рдирд╣реАрдВ рд╣реИрдВред рдореИрдВ рдбрд┐рдЬрд╛рдЗрди рд╕реНрдерд╛рди рдХреЛ рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рдЪрд┐рддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реЗ рдареЛрд╕ рдЙрджрд╛рд╣рд░рдг рджреЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ рдпрд╣ рднреА рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рд╣рдо рдбреЗрдЯрд╛ рдХреА рдХрд┐рд╕реА рдПрдХ рд╢реИрд▓реА рдХреЛ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рджреЗрдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░рддрд┐ рд╕рд╛рд░ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдХрдИ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдпрджрд┐ рд╣рдо рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХрдорд╛рддреНрд░ рдмрд╛рдзреНрдпрдХрд╛рд░реА utf8-cstr , рддреЛ рд╕рднреА рдЧреИрд░-рд╕реА-рдПрдмреАрдЖрдИ- рд╡рд╛рд▓реА рднрд╛рд╖рд╛рдУрдВ рдХреЛ рдЙрд╕ рдмреЗрдореЗрд▓ рд╕реЗ рдирд┐рдкрдЯрдирд╛ рд╣реЛрдЧрд╛ред рдореИрдВ рд╡реАрдПрдо рд▓реЗрдЦрди рдЬрдЯрд┐рд▓рддрд╛ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд╕рд╛рде рдареАрдХ рд╣реВрдВ, рдХреБрдЫ рдЫреЛрдЯреЗ рдХрд╛рд░рдХ рдирд╣реАрдВ рд╣реИрдВред
рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдореЗрдВ рдХреБрд▓ рдХрд╛рд░реНрдп рдУ (рд╡реАрдПрдо рдкреНрд░рдпрд╛рд╕ + рднрд╛рд╖рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкреНрд░рдпрд╛рд╕) рд╣реИ, рдФрд░ рдпреЗ рджреЛрдиреЛрдВ рд╢рдмреНрдж рдХрд┐рд╕реА рддрд░рд╣ рд╕реЗ рдПрди = рднрд╛рд╖рд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рд╕реНрдХреЗрд▓ рдХрд░рддреЗ рд╣реИрдВред рдПрдо = рдПрдореНрдмреЗрдбрд░реНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛, рдХреЗ = рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреА рд╕рдВрдЦреНрдпрд╛, рдФрд░ рдП = рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреА рдФрд╕рдд рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рднрд╛рд╖рд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдПрдХ <= рдХреЗ рд╕рд╛рдеред рдХрдо рд╕реЗ рдХрдо рд╣рдорд╛рд░реЗ рдкрд╛рд╕ M+N рдЕрд▓рдЧ wasm рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИрдВред
рдирд┐рд╖реНрдкрдХреНрд╖ рджреГрд╖реНрдЯрд┐рдХреЛрдг, рдкреНрд░рддреНрдпреЗрдХ рдПрди рднрд╛рд╖рд╛ рдХреЗ рд╕рд╛рде рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдПрдмреАрдЖрдИ рдПрдлрдПрдлрдЖрдИ рдХреЛ рд╣рд░ рджреВрд╕рд░реА рдПрди рднрд╛рд╖рд╛ рдХреЗ рд╕рд╛рде рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде, рдУ (рдПрдо + рдПрди * рдПрди) рд╣реИред рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреЗрд╢реА рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдкрд░ рд╣реИ, рдЬреЛ рдПрдХ рдордЬрдмреВрдд рд╕рдВрдХреЗрдд рд╣реИ рдХрд┐ рдХреЛрдИ рднреА рдУ (рдПрди * рдПрди) рдкрд░рд┐рдгрд╛рдо рдореВрд▓ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рд╕реЗ рдЕрд▓рдЧ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
рджреВрд╕рд░рд╛ рднреЛрд▓рд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг, рдЬрд╣рд╛рдВ рдкреНрд░рддреНрдпреЗрдХ рд╡реАрдПрдо рдХреЛ рд╕рднреА рдПрди * рдПрди рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ: рдУ (рдПрдо * рдПрди * рдПрди + рдПрди), рдЬреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдФрд░ рднреА рдмрджрддрд░ рд╣реИред
рд╣рдо рдЬреЛ рдкреНрд░рд╕реНрддрд╛рд╡ рджреЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ k рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рд╣реИ рдЬреЛ рдПрдХ рдЕрдореВрд░реНрдд рднрд╛рд╖рд╛ рдХреЗ рдмреАрдЪ рдХрд╛ рдирдХреНрд╢рд╛ рд╣реИ, рдЬреЛ рд╕рднреА рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд╡рд╛рдкрд╕ рдореИрдк рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рддрд╛рддреНрдкрд░реНрдп рдкреНрд░рддреНрдпреЗрдХ VM рдХреЗ рд▓рд┐рдП k рдХрд╛рд░реНрдп рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рднрд╛рд╖рд╛ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЗ рд╕рдмрд╕реЗрдЯ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдХреБрд▓ рдХрд╛рд░реНрдп M*k + N*a рд╣реИ, рдЬреЛ O(M*k + N*k) рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЗрд╕ рдШрдЯрдирд╛ рдореЗрдВ рдХрд┐ рдХреЗ = рдПрди рдХрд┐ рд╡реАрдПрдо рдкрдХреНрд╖ "рдХреЗрд╡рд▓" рдПрдо * рдПрди рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рд╡реАрдПрдо рдХреЗ рд▓рд┐рдП рдпрд╣ рднрд╛рд╖рд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ "рдХреЗрд╡рд▓" рд░реИрдЦрд┐рдХ рд╣реИред рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╣рдо k << N рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЕрдиреНрдпрдерд╛ рдпрд╣ рдЕрднреА рднреА O(N*N) рд╣реИ, рдкрд╣рд▓реЗ рд╕рдорд╛рдзрд╛рди рд╕реЗ рдмреЗрд╣рддрд░ рдирд╣реАрдВ рд╣реИред
рдлрд┐рд░ рднреА, рдУ (рдПрдо * рдХреЗ + рдПрди * рдХреЗ) рдЕрдзрд┐рдХ рд╕реНрд╡рд╛рджрд┐рд╖реНрдЯ рд╣реИред рдпрджрд┐ k, O(1) рд╣реИ, рддреЛ рдпрд╣ рдкреВрд░реЗ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд░реИрдЦрд┐рдХ рдмрдирд╛рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рд╢рд╛рдорд┐рд▓ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреА рдорд╛рддреНрд░рд╛ рдкрд░ рд╣рдорд╛рд░реА рдирд┐рдЪрд▓реА рд╕реАрдорд╛ рд╣реИред рдПрдХ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рдмрд╛рдзреНрдп рд╣реИ рдХреЗ рдУ (рд▓реЙрдЧ (рдПрди)) рд╣реИ, рдЬрд┐рд╕реЗ рдореИрдВ рдЕрднреА рднреА рдмрд╣реБрдд рд╕рдВрддреБрд╖реНрдЯ рд╣реВрдВред

рдЬреЛ рдХрд╣рдиреЗ рдХрд╛ рдПрдХ рд▓рдВрдмрд╛ рд░рд╛рд╕реНрддрд╛ рд╣реИ, рдореИрдВ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рд╡реАрдПрдо рдЬрдЯрд┐рд▓рддрд╛ рдХреЛ рдХреБрдЫ рд╕реНрдерд┐рд░ рдХрд╛рд░рдХ рд╕реЗ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд╕рд╛рде рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдареАрдХ рд╣реВрдВред

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

рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдзрд╛рд░рдгрд╛ рд╣реИ рдЬреЛ рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдЪ рдирд╣реАрдВ рд╣реИред рдореЗрд░рд╛ рдЕрдиреБрднрд╡ рдпрд╣ рд╣реИ рдХрд┐ рднрд╛рд╖рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд░реВрдк рдореЗрдВ рдХрдИ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ (рдХрдо рд╕реЗ рдХрдо!)ред рдФрд░ рд╡реЗ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдЬрдЯрд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

V8 рд▓реЗрдВ, рдЬрд┐рд╕рдореЗрдВ рдЕрдХреЗрд▓реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рджрд░реНрдЬрди (!) рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдПрдиреНрдХреЛрдбрд┐рдВрдЧ, рд╡рд┐рд╖рдо рд░рд╕реНрд╕рд┐рдпрд╛рдВ тАЛтАЛтАЛтАЛрдЖрджрд┐ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

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

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

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

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

рдФрд░ рдлрд┐рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдкрдХреНрд╖ рд╣реИ, рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ рдЗрди рд╕рднреА рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЛ рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рд╣реЛрдЧрд╛!

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

рдореЗрд░рд╛ рдЕрдиреБрднрд╡ рдпрд╣ рд╣реИ рдХрд┐ рднрд╛рд╖рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд░реВрдк рдореЗрдВ рдХрдИ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ (рдХрдо рд╕реЗ рдХрдо!)ред рдФрд░ рд╡реЗ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдЬрдЯрд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

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

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

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЖрдк рдХреЗрд╡рд▓ рдПрдХ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рджреВрд░ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ: рд╕реВрдЪрдХ + рд▓реЗрди рдЬреЛрдбрд╝реАред рдлрд┐рд░ рдЖрдкрдХреЛ рдмрд╕ рдПрдХ "рд╕реНрдХреАрдорд╛" рдЪрд╛рд╣рд┐рдП рдЬреЛ рдХрд╣рддреА рд╣реИ рдХрд┐ рдЙрди рдмрд╛рдЗрдЯреНрд╕ рдореЗрдВ рдХреНрдпрд╛ рд╣реИред рдХреНрдпрд╛ рдпрд╣ UTF-8 рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛрдиреЗ рдХрд╛ рд╡рд╛рджрд╛ рдХрд░рддрд╛ рд╣реИ? рдХреНрдпрд╛ рдЕрдВрддрд┐рдо рдмрд╛рдЗрдЯ рдХреА рдЧрд╛рд░рдВрдЯреА рд╣рдореЗрд╢рд╛ 0 рд╣реЛрддреА рд╣реИ? рдХреНрдпрд╛ рдкрд╣рд▓реЗ 4/8 рдмрд╛рдЗрдЯ рд▓рдВрдмрд╛рдИ/рдХреНрд╖рдорддрд╛ рдлрд╝реАрд▓реНрдб рд╣реИрдВ? рдХреНрдпрд╛ рдпреЗ рд╕рднреА рдмрд╛рдЗрдЯреНрд╕ рд▓рд┐рдЯрд┐рд▓ рдПрдВрдбрд┐рдпрди рдлреНрд▓реЛрдЯреНрд╕ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╕реАрдзреЗ рд╡реЗрдмрдЬреАрдПрд▓ рдкрд░ рднреЗрдЬрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ? рдХреНрдпрд╛ рдпреЗ рдмрд╛рдЗрдЯ рд╢рд╛рдпрдж рдореМрдЬреВрджрд╛ рдХреНрд░рдорд╛рдВрдХрди рдкреНрд░рд╛рд░реВрдк рдХреА рд╕реНрдХреАрдорд╛ рдПрдХреНрд╕ рд╣реИрдВ? рдЖрджрд┐?

рдореИрдВ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рд╕реНрдХреАрдорд╛ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ рдЬреЛ рдЗрди рд╕рднреА рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рдЙрддреНрддрд░ рджреЗ рд╕рдХрддрд╛ рд╣реИ (рдореМрдЬреВрджрд╛ рдХреНрд░рдорд╛рдВрдХрди рдкреНрд░рд╛рд░реВрдк рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдХреБрдЫ рдФрд░ рдирд┐рдореНрди рд╕реНрддрд░, рд╕рд░рд▓, рдФрд░ wasm рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ)ред рдЗрд╕рдХреЗ рдмрд╛рдж рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдЗрди рдмрдлрд╝рд░реНрд╕ рдХреЛ рдХреБрд╢рд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкрдврд╝рдиреЗ рдФрд░ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рднрд╛рд╖рд╛ рдХрд╛ рдмреЛрдЭ рдмрди рдЬрд╛рддрд╛ рд╣реИред рдмреАрдЪ рдореЗрдВ рдкрд░рддреЗрдВ рдмрд┐рдирд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ, рдпрд╛ рддреЛ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рджреНрд╡рд╛рд░рд╛, рдпрд╛ рдЬрд╣рд╛рдВ рд╕рдВрднрд╡ рд╣реЛ, рд╕рдВрджрд░реНрдн/рджреГрд╢реНрдп рджреНрд╡рд╛рд░рд╛ рдмрдлрд░ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдЕрдВрдзрд╛рдзреБрдВрдз рдЧреБрдЬрд░ рд╕рдХрддреА рд╣реИрдВред

рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдзрд╛рд░рдгрд╛ рд╣реИ рдЬреЛ рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдЪ рдирд╣реАрдВ рд╣реИред рдореЗрд░рд╛ рдЕрдиреБрднрд╡ рдпрд╣ рд╣реИ рдХрд┐ рднрд╛рд╖рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд░реВрдк рдореЗрдВ рдХрдИ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ (рдХрдо рд╕реЗ рдХрдо!)ред рдФрд░ рд╡реЗ рдордирдорд╛рдиреЗ рдврдВрдЧ рд╕реЗ рдЬрдЯрд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

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

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

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

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

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

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

рдореЙрдбрд▓ рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛, рднрд▓реЗ рд╣реА рд╣рдо рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреИрд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ (рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдЕрдЧрд░ рд╣рдо рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ), рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рд▓реИрдВрдб рдореЗрдВ рдЗрд╕реЗ рд╕рдВрднрд╛рд▓рдирд╛ рд╣реИред рдпрджрд┐ рдХрд┐рд╕реА рднрд╛рд╖рд╛ рдХрд╛ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рд╕реАрдзреЗ рдмрд╛рдзреНрдпрдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдореИрдк рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЙрд╕реЗ рдЙрд╕ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдореЗрдВ рдХрдирд╡рд░реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдЬреЛ рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдпрджрд┐ рд╣рд╛рд╕реНрдХреЗрд▓ рдХреЗ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ (type $haskellString (struct (field i8) (field (func (result (ref $haskellString)))))) рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рдпрд╛ рддреЛ рдПрдХ рд╕рдЦреНрдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдХрдирд╡рд░реНрдЯ рдХрд░рдиреЗ рдФрд░ рд╕реНрдХреАрдо-рдЬреИрд╕реА рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдпрд╛ рдЯреЗрдХреНрд╕реНрдЯ рдРрд░реЗ рдореЗрдВ рдФрд░ рдЬрд╛рд╡рд╛-рдЬреИрд╕реА рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдпрд╛ рдП CFFIString рдФрд░ C- рдЬреИрд╕реЗ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдХрдИ рдЕрдкреВрд░реНрдг рдмрд╛рдзреНрдпрдХрд╛рд░реА рдкреНрд░рдХрд╛рд░ рд╣реЛрдиреЗ рдХрд╛ рдореВрд▓реНрдп рдкреНрд░рд╕реНрддрд╛рд╡ рдпрд╣ рд╣реИ рдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рджреВрд╕рд░реЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╣рд╛рд╕реНрдХреЗрд▓ рдХреЗ рд▓рд┐рдП рдХрдо рдЕрдЬреАрдм рд╣реИрдВ, рдФрд░ рд╕рдВрдХрд▓рдХ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд┐рдирд╛ Wasm-FFI рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред

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

рдореИрдВ рднреНрд░рдорд┐рдд рд╣реВрдВ, рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ "рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдмреАрдЪ рдмрдВрдзрди рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд╕рдВрднрд╡ рд╣реИ рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП," рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдЖрдк рдЬреЛ рдХрд╣ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣ "рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдирд╣реАрдВ рд╣реИ" рдХреА рддрд░реНрдЬ рдкрд░ рдЕрдзрд┐рдХ рд╣реИ рдпрд╣рд╛рдВ рд╡рд░реНрдгрд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЯреНрд░реИрдХреНрдЯреЗрдмрд▓ рд╣реИ," рдЬреЛ рдХрд┐ рдЕрдзрд┐рдХ рдЙрдЪрд┐рдд рд▓рдЧрддрд╛ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рддрд░реНрдХ рдХреА рдЗрд╕ рдкрдВрдХреНрддрд┐ рдкрд░ рдореЗрд░реА рдЖрдкрддреНрддрд┐ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдЧреЗ рдХреЗ рдорд╛рд░реНрдЧ рдХрд╛ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд░рддреА рд╣реИред рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдпрд╣ рд╕рдорд╕реНрдпрд╛ "рдмрд╣реБрдд рдХрдард┐рди" рд╣реИ, рд╣рдо рдХреНрдпрд╛ рдХрд░реЗрдВ?

рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рд╣рдо рдХреБрдЫ рдХреЛ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рджреЗрдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрдВрдЧреЗ

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

рдЬрдмрдХрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдордирдорд╛рдирд╛ рд╕рд╛рдорд╛рди рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рдЪрд┐рдбрд╝рд┐рдпрд╛рдШрд░ рдмрдврд╝ рд░рд╣рд╛ рд╣реИред

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

@aardappel рд▓рдШреБ рд╕рдВрд╕реНрдХрд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдореЗрд░реА рдмреИрдХрдЕрдк рдпреЛрдЬрдирд╛ рд╣реИ рдпрджрд┐ рдШреЛрд╖рдгрд╛рддреНрдордХ рд╕рд╛рд░ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ: рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡рд┐рдкрд░реАрдд рджрд┐рд╢рд╛ рдореЗрдВ рдЬрд╛рдПрдВ рдФрд░ рдПрдХ рдХреНрд░рдордмрджреНрдз рдкреНрд░рд╛рд░реВрдк рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВред рдЕрд╡рд▓реЛрдХрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╡реЗрдм рд╕реНрд╡рдпрдВ рд▓рдЧрднрдЧ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЯреЗрдХреНрд╕реНрдЯ рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдЕрддреНрдпрдВрдд рдирд┐рдореНрди рд╕рд╛рдорд╛рдиреНрдп рднрд╛рдЬрдХ рд╣реИред рдЯреЗрдХреНрд╕реНрдЯ рд╕рднреА рдЯреВрд▓реНрд╕ рджреНрд╡рд╛рд░рд╛ рддреБрдЪреНрдЫ рд░реВрдк рд╕реЗ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХреЗ рдКрдкрд░ рд╡реЗрдм рдЬреИрд╕рд╛ рдХреБрдЫ рд╕рдВрднрд╡ рд╣реИред

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

@ jgravelle-google рд╢рд╛рдпрдж рд╕рдВрджрд░реНрдн рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдЕрд▓рдЧ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП? рддреЛ рдПрдХ рджрд┐рдпрд╛ рдЧрдпрд╛ рдХрд╛рд░реНрдп рдХрдЪреНрдЪреЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ ref ref i32 i32 i32 i32 рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ 2 рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ 2 рдмрдлрд░ рдХреЗ рдмрд╛рдж рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдХрд╛рд░ рдХреЗ 2 рдмрдлрд░ (рдЙрдкрд░реЛрдХреНрдд рдХрд╛рд▓реНрдкрдирд┐рдХ рд╕реНрдХреАрдорд╛ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ) рд╣реИред

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

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

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

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

рдЖрдкрдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рд╕рднреА рдХреЛ рдзрдиреНрдпрд╡рд╛рджред

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

рдЕрдм рддрдХ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:

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

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

  • @lukewagner рдиреЗ рдИрдПрд╕рдПрдо рдПрдХреАрдХрд░рдг рдХреЗ рд╕рд╛рде рд╕рдВрдпреБрдХреНрдд рд░реВрдк рд╕реЗ рдкрд░рд╕реНрдкрд░ рдЕрд╡рд┐рд╢реНрд╡рд╛рд╕ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╡рд╛рд▓реЗ рдореЙрдбреНрдпреВрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЙрддреНрд╕рд╛рд╣ рд╡реНрдпрдХреНрдд рдХрд┐рдпрд╛ рд╣реИред рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд╛ рдЕрдЧрд▓рд╛ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдЙрд╕ рдХреНрд╖рдорддрд╛ рдкрд░ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП; рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдПрдХ рдкрд╢реНрдЪ-рд╕рдВрдЧрдд рдкреНрд░рдХрд╛рд░ рдХреА рдкреНрд░рдгрд╛рд▓реА рд╣реЛрдиреЗ рд╕реЗ wasm рдХреЛ npm рдЬреИрд╕реА рдирд┐рд░реНрднрд░рддрд╛ рдЯреНрд░реА рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓рддреА рд╣реИ, рдЬрдмрдХрд┐ рдирд┐рд░реНрднрд░рддрд╛ рд╣реАрд░реЗ рдХреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдЦрд╛рдорд┐рдпрд╛рдЬрд╛ рднреБрдЧрддрдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред

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

  • рдХрдИ рдкрд╛рдардХреЛрдВ рдиреЗ рдЕрдВрддрд░-рднрд╛рд╖рд╛ рдкреНрд░рдХрд╛рд░ рдХреА рдкреНрд░рдгрд╛рд▓реА рдХреА рд╡реНрдпрд╡рд╣рд╛рд░реНрдпрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рд╡реНрдпрдХреНрдд рдХреАред рдЗрди рдЪрд┐рдВрддрд╛рдУрдВ рдХреЛ рдХреБрдЫ рд╣рдж рддрдХ рдЕрд╕реНрдкрд╖реНрдЯ рдФрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рдХрдард┐рди рд╣реИ, рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдХреНрдпреЛрдВрдХрд┐ рд╡рд┐рд╖рдп рд╡рд╕реНрддреБ рдмрд╣реБрдд рд╕рд╛рд░рдЧрд░реНрднрд┐рдд рд╣реИ, рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рд╕реНрддрд╛рд╡ рдЕрдм рддрдХ рдмрд╣реБрдд рдЕрд╕реНрдкрд╖реНрдЯ рд╣реИ, рдЬреЛ рдХрд░рддрд╛ рд╣реИред рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рдлрд▓рддрд╛ рд░рд╛рдЬреНрдпреЛрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:

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

рдЕрдЧрд▓реЗ рдкреНрд░рд╕реНрддрд╛рд╡ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЛ рдЗрди рдЪрд┐рдВрддрд╛рдУрдВ рдХреЛ рдПрдХ рдпрд╛ рджреВрд╕рд░реЗ рддрд░реАрдХреЗ рд╕реЗ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

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

рд╕рд╛рде рд╣реА, рдЬреИрд╕рд╛ рдХрд┐ рдкрд╛рдардХреЛрдВ рдиреЗ рдмрддрд╛рдпрд╛ рд╣реИ, рдкреНрд░рд╕реНрддрд╛рд╡ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕реНрдХреАрдорд╛ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХреЛ рдЗрд╕рдХреЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХреЗ рд╕рд╛рде рдЙрд▓рдЭрд╛рддрд╛ рд╣реИред рдЬрдмрдХрд┐ рдкреНрд░рд╕реНрддрд╛рд╡ рдПрдХ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдкреНрд░рд╛рд░реВрдк рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрдЪрд┐рдд рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рд╕рд╛рд░ рдкреНрд░рдХрд╛рд░ рдХреА рд╕реНрдХреАрдорд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

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

@ jgravelle-рдЧреВрдЧрд▓:

рдореЙрдбрд▓ рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛, рднрд▓реЗ рд╣реА рд╣рдо рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреИрд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ (рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдЕрдЧрд░ рд╣рдо рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ), рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рд▓реИрдВрдб рдореЗрдВ рдЗрд╕реЗ рд╕рдВрднрд╛рд▓рдирд╛ рд╣реИред

рд╣рд╛рдВ, рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ, рдФрд░ рдореЗрд░рд╛ рддрд░реНрдХ @aardappel рдХреЗ рд╕рдорд╛рди рд╣реИ: рдпрджрд┐ рд╡реИрд╕реЗ рднреА рд╣рдореЗрдВ рдЖрдо рддреМрд░ рдкрд░ рдРрд╕рд╛ рд╣реА рдХрд░рдирд╛ рд╣реИ рддреЛ рд╣рдореЗрдВ рдмрд╕ рдЗрд╕реЗ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдХреБрдЫ рд╡рд┐рд╖рдо рдорд╛рдорд▓реЛрдВ рдХреЛ рд╕реБрдзрд╛рд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрджрд░реНрде рдЪреАрдЬреЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред Userland рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдВ рд░реВрдкрд╛рдВрддрд░рдг рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, Wasm рдореЗрдВ рдмрд╛рдХреА рд╕рдм рдЪреАрдЬреЛрдВ рдХреА рднрд╛рд╡рдирд╛ рдореЗрдВред

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

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдмреАрдЪ рдбреЗрдЯрд╛ рдЗрдВрдЯрд░рдСрдк рдХреЗ рд▓рд┐рдП рдбреАрдбреАрдПрд▓ (рдЯрд╛рдЗрдк рд╕реНрдХреАрдо) рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡рд╛рдВрдЫрдиреАрдп рд╣реИред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╡рд╛рд╕рдо рдореЗрдВ рд░реВрдкрд╛рдВрддрд░рдг рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИред рд░реВрдкрд╛рдВрддрд░рдгреЛрдВ рдХреЛ рдпреВрдЬрд░рд▓реИрдВрдб рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдмрд╛рдзреНрдпрдХрд╛рд░реА рдкрд░рдд рдХреЗрд╡рд▓ рдПрдХ рдкреНрд░рд╛рд░реВрдк рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИ рдЬрд┐рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛрдб рдХреЛ рдЙрддреНрдкрд╛рджрди/рдЙрдкрднреЛрдЧ рдХрд░рдирд╛ рд╣реЛрддрд╛ рд╣реИред

рдЬрдмрдХрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдордирдорд╛рдирд╛ рд╕рд╛рдорд╛рди рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рдЪрд┐рдбрд╝рд┐рдпрд╛рдШрд░ рдмрдврд╝ рд░рд╣рд╛ рд╣реИред
рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рдЗрд╕рд╕реЗ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИред рдЬреЛ рдордирдорд╛рдирд╛ рд╣реИ рдЙрд╕рдХреА рдореЗрд░реА рд╡реНрдпрд╛рдЦреНрдпрд╛ рд╣реИ "рд╣рдо рдХрд┐рди рднрд╛рд╖рд╛рдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ", рд▓реЗрдХрд┐рди рдпрд╣ "рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░" рдХреЗ рд╕рдорд╛рди рд╣реИ, рдЬреЛ рджреЛрд╣рд░реА рдЧрдгрдирд╛ рд╣реЛрдЧреАред

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

рд╣рдо рд╕рдВрджрд░реНрдн рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдХреИрд╕реЗ рд╕рдВрднрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ?

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

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

@PoignardAzur :

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

рд╣рд╛рдБ, рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЖрдЬрдХрд▓ рдЗрд╕реЗ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдПрдХ рдЧрд▓рддреА рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ "рд╕рд░рд▓" рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рднреА рдХрд┐рддрдиреА рд╡рд┐рд╡рд┐рдзрддрд╛ рд╣реИред

@ рд░реЛрд╕рдмрд░реНрдЧ

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдмреАрдЪ рдбреЗрдЯрд╛ рдЗрдВрдЯрд░рдСрдк рдХреЗ рд▓рд┐рдП рдбреАрдбреАрдПрд▓ (рдЯрд╛рдЗрдк рд╕реНрдХреАрдо) рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡рд╛рдВрдЫрдиреАрдп рд╣реИред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╡рд╛рд╕рдо рдореЗрдВ рд░реВрдкрд╛рдВрддрд░рдг рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИред рд░реВрдкрд╛рдВрддрд░рдгреЛрдВ рдХреЛ рдпреВрдЬрд░рд▓реИрдВрдб рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ, рдФрд░ рдЙрд╕рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП: рдореИрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП wasm рдХрд▓реНрдкрдирд╛ рдореЗрдВ рдХреБрдЫ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдВрджреЗрд╣ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ wasm рдХреЛ рдЕрдиреНрдп рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдПрдХ рдЕрдВрддрд░-рднрд╛рд╖рд╛ рд╕рдорд╛рдзрд╛рди рдХреА рдЕрдзрд┐рдХ рдХрд░рдиреЗ рдХреА рдЕрдзрд┐рдХ @aardappel рдХреЗ рд░реВрдк рдореЗрдВ рдмрдлрд╝рд░реНрд╕ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред (рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпреВрдЬрд░рд╕реНрдкреЗрд╕ рдореЗрдВ рдкреНрд░рдпреЛрдЧ рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рднреА рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░ рд╣реИ!)

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

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

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд░рддрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╡реЗрдм рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдХреЛрдб рдХреЛ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрджрд░реНрднреЛрдВ рдореЗрдВ рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЪрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЙрд╕реА рддрд░рд╣ рдЬреИрд╕реЗ рдХреЛрдИ <script src="http://some.other.site/jquery.js"> рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдореБрдЭреЗ рд▓реЛрдЧреЛрдВ рдХреЛ рдПрдХ рдХреНрд░реЙрд╕-рдСрд░рд┐рдЬрд┐рдирд▓ рддрд░реАрдХреЗ рд╕реЗ рд╡рд╛рд╕рдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдорд┐рд▓рд╛рддреЗ рд╣реБрдП рджреЗрдЦрдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛ред рд╡реЗрдм рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдХреНрд╖рдгрд┐рдХрддрд╛ рдФрд░ рдХрдВрдкреЛрдЬрд╝реЗрдмрд┐рд▓рд┐рдЯреА рдЧреБрдгреЛрдВ рдХреЗ рдХрд╛рд░рдг, рд╡рд┐рджреЗрд╢реА рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░рдлреЗрд╕ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХрд╛ рдореВрд▓реНрдп-рдЬреЛрдбрд╝ рджреЗрд╢реА рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдкрд╣рд▓реЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╣реИред

рдФрд░ рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЕрдиреНрдп рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП wasm рдХреА рдЕрдзрд┐рдХ рдХреНрд╖рдорддрд╛ рд╣реИред

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

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

рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдХрд╛ рд░рд╛рд╕реНрддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдЕрднреА рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЯреВрд▓-рд▓реЗрд╡рд▓ рдЗрдВрдЯрд░рдСрдк рдореЗрдВ рдзрдХреЗрд▓ рджрд┐рдпрд╛ рдЬрд╛рдП, рдФрд░ рдорд╛рдирдХреАрдХрд░рдг рдХреЛ рддрдм рддрдХ рдХреЗ рд▓рд┐рдП рдЯрд╛рд▓ рджрд┐рдпрд╛ рдЬрд╛рдП рдЬрдм рддрдХ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╡рд┐рдЬреЗрддрд╛ рдкреНрд░рд╛рд░реВрдк рди рд╣реЛред рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рд▓рдХреНрд╖реНрдп рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдкреНрд░рдореБрдЦ wasm рдкреИрдХреЗрдЬ рдкреНрд░рдмрдВрдзрдХ рдХрд╛ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рд╣реИ, (рдФрд░ рдХреНрдпрд╛ рд╡рд╣ NPM рдпрд╛ WAPM рдпрд╛ рдХреБрдЫ рдЕрднреА рддрдХ рдмрдирд╛рдП рдЧрдП рдкреИрдХреЗрдЬ рдкреНрд░рдмрдВрдзрдХ рд╣реИрдВ?) рддреЛ рдпрд╣ рдорд╛рдирдХреАрдХрд░рдг рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ рд╣рдо рдмреЗрд╣рддрд░ рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реЛрдЧ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЙрд╕реЗ рдорд╛рдирдХреАрдХреГрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдПрд░реНрдЧреЛрдиреЙрдорд┐рдХреНрд╕ рдХреЛ рдпреВрдЬрд░рд▓реИрдВрдб рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдПрдХ рдЬреЛрдЦрд┐рдо рдпрд╣ рд╣реИ рдХрд┐ рдЬреАрддрдиреЗ рд╡рд╛рд▓рд╛ рдЗрдВрдЯрд░рд▓реИрдВрдЧреНрд╡реЗрдЬ рдкреНрд░рд╛рд░реВрдк рдЦреБрдж рдХреЛ рдЕрдиреБрдХреВрд▓рди рдХреЗ рд▓рд┐рдП рдЙрдзрд╛рд░ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ, рдФрд░ рд╣рдо рдПрдХ рдЙрдк-рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдорд╛рдирдХ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рдЕрдЧрд░ рд╣рдо рдмрд╛рдж рдореЗрдВ рдорд╛рдирдХреАрдХрд░рдг рдХреЗ рдЗрд░рд╛рджреЗ рд╕реЗ рдПрдХ рдкреНрд░рд╛рд░реВрдк рддреИрдпрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдХрд╕реНрдЯрдо рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдШреЛрд╖рдгрд╛рддреНрдордХ рд╢реИрд▓реА рдЕрдзрд┐рдХрддрд░ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ?) рдЬреЛ рдЙрд╕ рдЬреЛрдЦрд┐рдо рдХреЛ рд╣рдЯрд╛ рджреЗрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рднреА рдкреНрд░рджрд░реНрд╢рди рд╕реБрдзрд╛рд░ рдореЗрдВ рджреЗрд░реА рднреА рдХрд░рддреА рд╣реИред рдореЗрд░реЗ рд▓рд┐рдП рдкреНрд░рджрд░реНрд╢рди рдЗрд╕ рддрд░рд╣ рдХреА рдЪреАрдЬрд╝реЛрдВ рдХреЗ рд▓рд┐рдП рдХрдо рд░реЛрдорд╛рдВрдЪрдХ рдкреНрд░реЗрд░рдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдареАрдХ рд╣реВрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрдиреНрдп рдЕрд╕рд╣рдордд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

(рдФрд░ рдХреНрдпрд╛ рд╡рд╣ рдПрдирдкреАрдПрдо рдпрд╛ рдбрдмреНрд▓реНрдпреВрдПрдкреАрдПрдо рдпрд╛ рдХреБрдЫ рдЕрднреА рддрдХ рдмрдирд╛рдП рдЧрдП рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░ рд╣реИрдВ?)

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

рд╡реИрд╕реЗ рднреА, рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдбрдмреНрд▓реНрдпреВрдПрдкреАрдПрдо рдореЗрдВ рдирд┐рд░реНрднрд░рддрд╛ рдкреНрд░рдмрдВрдзрди рднреА рд╣реИред

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

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

рд░реВрдкрд╛рдВрддрд░рдгреЛрдВ рдХреЛ рдпреВрдЬрд░рд▓реИрдВрдб рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдмрд╛рдзреНрдпрдХрд╛рд░реА рдкрд░рдд рдХреЗрд╡рд▓ рдПрдХ рдкреНрд░рд╛рд░реВрдк рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИ рдЬрд┐рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛрдб рдХреЛ рдЙрддреНрдкрд╛рджрди/рдЙрдкрднреЛрдЧ рдХрд░рдирд╛ рд╣реЛрддрд╛ рд╣реИред

рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рд╛рд░рд╛рдВрд╢ рд╣реИред

рдЬрдм рдореИрдВ рдПрдХ рдирдпрд╛ рдорд╕реМрджрд╛ рд▓рд┐рдЦ тАЛтАЛрд░рд╣рд╛ рд╣реВрдВ, рддреЛ рдЗрд╕ рдзрд╛рдЧреЗ рдкрд░ рдореЗрд░реЗ рдкрд╛рд╕ рд╕рднреА рдХреЗ рд▓рд┐рдП рдПрдХ рдЦреБрд▓рд╛ рдкреНрд░рд╢реНрди рд╣реИ:

рдХреНрдпрд╛ рдХреЛрдИ рдореМрдЬреВрджрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИ, рдЕрдЧрд░ рдЗрд╕реЗ WebAssembly рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдЖрдк рдХрд┐рд╕реА рднреА рднрд╛рд╖рд╛ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ?

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

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

@PoignardAzur BoringSSL рдФрд░ libsodium рджрд┐рдорд╛рдЧ рдореЗрдВ рдЖрддреЗ рд╣реИрдВред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ Cap'n рдкреНрд░реЛрдЯреЛ рдЖрд░рдкреАрд╕реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдЕрдЬреАрдм рд╣реИ: Cap'n рдкреНрд░реЛрдЯреЛ рдХреА _serialization_ рдкрд░рдд рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд░реВрдк рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рднрд╛рд╖рд╛ рдореЗрдВ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдПрдХ рд╡рд┐рд╕реНрддреГрдд-рд▓реЗрдХрд┐рди-рдЙрдерд▓реА рдПрдкреАрдЖрдИ рдкрд░рдд рд╣реИ рдЬрд┐рд╕реЗ рдореБрд╣рд╛рд╡рд░реЗрджрд╛рд░ рдФрд░ рдЗрдирд▓рд╛рдЗрди рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдореИрддреНрд░реАрдкреВрд░реНрдгред RPC рдкрд░рдд, OTOH, рд╕рдВрдХреАрд░реНрдг рд▓реЗрдХрд┐рди рдЧрд╣рд░реА рд╣реИред рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ рдПрдлрдПрдлрдЖрдИ рд╕реАрдорд╛ рдкрд░ рдХреИрдкрди-рдПрдиреНрдХреЛрдбреЗрдб рдмрд╛рдЗрдЯ рд╕рд░рдгреА рд╕рдВрджрд░реНрднреЛрдВ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдХреЗ рдХрд┐рд╕реА рднреА рдордирдорд╛рдиреА рднрд╛рд╖рд╛ рдХреЗ рдХреНрд░рдорд┐рдХрд░рдг рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдкреАрдЫреЗ рд╕реА ++ рдЖрд░рдкреАрд╕реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП ...

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬреЛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╣реИ рдЙрд╕реЗ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдВрддрддрдГ рд╡реЗрдм рдЕрд╕реЗрдВрдмрд▓реА рдореЗрдВ рдХреБрдЫ рдХрд╛рдлреА рдЖрдХреНрд░рд╛рдордХ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реИ - рд▓реЗрдХрд┐рди рддрд░реНрдХрд╕рдВрдЧрдд рд░реВрдк рд╕реЗ рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдореИрдВ рдзреНрдпрд╛рди рджреВрдВрдЧрд╛ рдХрд┐ рд╕реНрдореЙрд▓рдЯрд╛рдХ рджреБрдирд┐рдпрд╛ рдХреЛ рдЗрд╕ рддрд░рд╣ рдХреЗ рдкреНрд░рдпрд╛рд╕ рдХреЗ рд╕рд╛рде рдХреБрдЫ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдЕрдиреБрднрд╡ рдерд╛ рдЬреЛ рдЙрдирдХреЗ рд░рд╛рдЬреНрдп рдкреНрд░рддрд┐рдХреГрддрд┐ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ (рдПрд╕рдЖрд░рдкреА) рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реАрдкреВрд░реНрдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдПрдХ рдХреБрд╢рд▓ рдХреНрд░рдордмрджреНрдзрддрд╛ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╣реИ рдЬреЛ рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдХрд┐рд╕реА рднреА рдЖрдХрд╛рд░ рдХреЛ рдХреБрд╢рд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдореИрдВрдиреЗ рдЗрд╕реЗ VM рдпрд╛ FPGA рдХреЗ рд▓рд┐рдП рдПрдХ рджреЗрд╢реА рдореЗрдореЛрд░реА рд▓реЗрдЖрдЙрдЯ рдмрдирд╛рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдзрд░-рдЙрдзрд░ рдирд╣реАрдВ рд╣реБрдЖред рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдЕрдЪреНрдЫреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рдХрдо рд╕реЗ рдХрдо рдПрдХ рдЕрдиреНрдп рднрд╛рд╖рд╛, рд╕реНрдХреНрд╡реАрдХ рдореЗрдВ рдкреЛрд░реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрд╕ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рдореБрджреНрджреЛрдВ, рдЪреБрдиреМрддрд┐рдпреЛрдВ рдФрд░ рдЕрдиреБрднрд╡реЛрдВ рдХреЗ рд╕рд╛рде рдордЬрдмреВрдд рдУрд╡рд░рд▓реИрдк рд╣реЛрдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╣реИред

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

рдореИрдВрдиреЗ https://github.com/WebAssembly/webidl-bindings/issues/40 рдЦреЛрд▓рд╛ рд╣реИ, рдЬрд┐рд╕рдиреЗ рдореБрдЭреЗ рдпрд╣рд╛рдВ рдПрдХ рдкреНрд░рд╢реНрди рдкреВрдЫрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдЗрд╕рдХрд╛ рдХреЛрдИ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИ (рдпрд╛ рдореИрдВрдиреЗ рдЗрд╕реЗ рдпрд╛рдж рдХрд┐рдпрд╛)ред

рдкреВрд░реА рдмрд╛рдзреНрдпрдХрд╛рд░реА рдХрд╣рд╛рдиреА рдореЗрдВ, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ "рдХреМрди" рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ:

  • рдХреНрдпрд╛ рдпрд╣ рдПрдХ рдХрдВрдкрд╛рдЗрд▓рд░ рд╣реИ (рдЬреЛ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рд╡рд╛рд╕рдо рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдмрджрд▓ рджреЗрддрд╛ рд╣реИ)?
  • рдХреНрдпрд╛ рдпрд╣ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓реЗрдЦрдХ рд╣реИ (рдФрд░ рдЗрд╕рд▓рд┐рдП, рдХреНрдпрд╛ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рд╣рд╛рде рд╕реЗ рд▓рд┐рдЦреА рдЧрдИ рд╣реИ)?

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

рднрд▓реЗ рд╣реА рд╡реЗрдм рдЖрдИрдбреАрдПрд▓ рдХреЛ рдХрдо рд╡реЗрдм-рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "рдлрд┐рд░ рд╕реЗ рдлреЛрдХрд╕" рдХрд░рдиреЗ рдХрд╛ рд▓рдХреНрд╖реНрдп рд╣реИ, рдЕрднреА, рдпрд╣ рдмрд╣реБрдд рд╡реЗрдм-рдХреЗрдВрджреНрд░рд┐рдд рд╣реИред рдФрд░ рд╡рд┐рдХрд▓реНрдк рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╕реНрддрд╛рд╡ рдЙрдарддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдзрд╛рдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рдореИрдВ рд╕рдВрднрд╛рд╡рд┐рдд рд╡рд┐рдЦрдВрдбрди рд╕реЗ рдЪрд┐рдВрддрд┐рдд рд╣реВрдВред рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ (рдФрд░ рдЗрд╕ рддрд░рд╣ рд╡рд╛рд╕рдо рдХреЛ рдЕрдм рддрдХ рдбрд┐рдЬрд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛), рдЗрд╕рдХреЗ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рд╕рд╣рд┐рдд рдПрдХ рд╡рд╛рд╕рдо рдореЙрдбреНрдпреВрд▓ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдЗрд╕реЗ рдХрд╣реАрдВ рднреА рдЪрд▓рд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИред Web IDL, Cap'n' Proto, FlatBuffers, рдЬреЛ рднреА рд╣реЛ, рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЗ рд╕рд╛рде, рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рд╕рднреА рдХрдВрдкрд╛рдЗрд▓рд░ рдпрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓реЗрдЦрдХ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдореЗрдВ рд╕рдорд╛рди рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЛ рд╕рд╣реА рдорд╛рдпрдиреЗ рдореЗрдВ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдирд╣реАрдВ рд▓рд┐рдЦреЗрдВрдЧреЗред рдордЬреЗ рдХреА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рд╣рд╕реНрддрд▓рд┐рдЦрд┐рдд рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдПрдХ рддрд░реНрдХ рд╣реИ: рд▓реЛрдЧ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкреА рдХреЗ рд▓рд┐рдП рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рд▓рд┐рдЦрдХрд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдпреЛрдЧрджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдорд╛рди рд▓реЗрдВ рдХрд┐ рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдЖрджрд░реНрд╢ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

рддреЛ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ: рдореИрдВ рд╡реЗрдм рдФрд░ рдЧреИрд░-рд╡реЗрдм рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЗ рдмреАрдЪ рд╕рдВрднрд╛рд╡рд┐рдд рд╡рд┐рдЦрдВрдбрди рд╕реЗ рдЪрд┐рдВрддрд┐рдд рд╣реВрдВред рдпрджрд┐ рдПрдХ рдЧреИрд░-рд╡реЗрдм рдмрд╛рдзреНрдпрдХрд╛рд░реА рднрд╛рд╖рд╛ рдЖрдпреЛрдЬрд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ, рддреЛ рдХреНрдпрд╛ рдЗрд╕реЗ рд╡реЗрдм рдмреНрд░рд╛рдЙрдЬрд╝рд░ рджреНрд╡рд╛рд░рд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд░реВрдк рд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛? рдЙрдиреНрд╣реЗрдВ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ тАЬWasm рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рд▓реИрдВрдЧреНрд╡реЗрдЬ B тЯ╢ Web IDLтАЭ рд▓рд┐рдЦрдиреА рд╣реЛрдЧреАред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╣ рд╕рднреА рд╣реЛрд╕реНрдЯ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рдкрд░рд┐рджреГрд╢реНрдп рд╣реИ: Wasm рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рд▓реИрдВрдЧреНрд╡реЗрдЬ B тЯ╢ рд╣реЛрд╕реНрдЯ APIред

рдЬреЛ рд▓реЛрдЧ рдЙрддреНрд╕реБрдХ рд╣реИрдВ рдХреЗ рд▓рд┐рдП, рдореИрдВ WASMER рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдореИрдВ рдХреЗ рд▓реЗрдЦрдХ рд╣реВрдБ PHP- , Python- , Ruby- рдФрд░ Go- Wasm рдПрдХреАрдХрд░рдгред рд╣рдо рдмрд╣реБрдд рдЕрд▓рдЧ рдореЗрдЬрдмрд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЛ рд╣реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рдЦреЗрд▓ рдХрд╛ рдореИрджрд╛рди рдмрдирд╛рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рдХреЛрдИ рдЪрд╛рд╣рддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рд╡рд┐рднрд┐рдиреНрди рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░реВрдБ, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдПрдБ рдПрдХрддреНрд░ рдХрд░реВрдБ, рдпрд╛ рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реВрдБ, рддреЛ рд╣рдо рд╕рднреА рд╕рд╣рдпреЛрдЧ рдХрд░рдиреЗ рдФрд░ рдЙрд╕ рдкрд░ рдЕрдзрд┐рдХ рд╕рдВрд╕рд╛рдзрди рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВред

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

рдЗрдВрдЯрд░-рдореЙрдбреНрдпреВрд▓ рдФрд░ рдореЙрдбреНрдпреВрд▓-рд╣реЛрд╕реНрдЯ рдХреЛ рд╡реНрдпрдХреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 'рдкреНрд░рд╛рдХреГрддрд┐рдХ' рднрд╛рд╖рд╛
рдЗрдВрдЯрд░рдСрдкрд░реЗрдмрд┐рд▓рд┐рдЯреА WASM рдХреА рдкреНрд░рд╛рдХреГрддрд┐рдХ рднрд╛рд╖рд╛ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрд╛рдлреА рд╕рдореГрджреНрдз рд╣реИред рдЗрд╕
рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдХреЛрдИ рднреА рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдЖрдИрдбреАрдПрд▓-рд╕рдордХрдХреНрд╖ рдХрд╛рдлреА рдордирдорд╛рдирд╛ рджрд┐рдЦрдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ
WASM рдХреЗ рдкреАрдУрд╡реАред

рджреВрд╕рд░реА рдУрд░, рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рджреБрдирд┐рдпрд╛ рдХреЛ C/C++ . рдХреЗ рд▓реЗрдВрд╕ рд╕реЗ рджреЗрдЦрддреЗ рд╣реИрдВ
(рдФрд░ рдЬрдВрдЧ рдФрд░ рдЗрд╕рдХреЗ рдЬреИрд╕реЗ) WASM рдХреЗ рдореЙрдбрд▓ рдХреЗ рдЬреЛрдЦрд┐рдо рд╕реЗ рдЕрдзрд┐рдХ рд╕рдореГрджреНрдз рдХреБрдЫ рднреА рд╣реЛ рд░рд╣рд╛ рд╣реИ
рдЕрдиреБрдкрдпреЛрдЧреА рд╣рдо рдЗрд╕реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд░реЗрдлрд░реА рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреА рдХрдард┐рдирд╛рдИ рдХреЗ рд╕рд╛рде рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ
рдЙрдкрдХрд░рдг рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рдЯрд╛рдЗрдк рдХрд░реЗрдВред

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

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

рдирд┐рдЪрд▓реА рдкрдВрдХреНрддрд┐: рдЖрдИрдбреАрдПрд▓-рд╕рдордХрдХреНрд╖ рд╣реЛрдиреЗ рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИ, рдФрд░ рд╣рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рд╕реАрдорд╛рдУрдВ рдХреЗ рдкрд╛рд░ рдЕрдВрддрд░реНрд╕рдВрдЪрд╛рд▓рди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдпрд╣ рдХреНрдпрд╛ рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ
рд╣реЛрдирд╛ рдлрд┐рд▓рд╣рд╛рд▓ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИред

рд╕реЛрдо 24 рдЬреВрди 2019 рдХреЛ рд╕реБрдмрд╣ 7:02 рдмрдЬреЗ рдЗрд╡рд╛рди рдПрдВрдбрд░рд▓рд┐рди рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

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

рдореИрдВрдиреЗ WebAssembly/webidl-bindings#40 . рдЦреЛрд▓реА рд╣реИрдВ
https://github.com/WebAssembly/webidl-bindings/issues/40 , рдЬрд┐рд╕рдиреЗ рдореБрдЭреЗ рдЖрдЧреЗ рдмрдврд╝рд╛рдпрд╛
рдпрд╣рд╛рдВ рдПрдХ рдкреНрд░рд╢реНрди рдкреВрдЫрдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдЗрд╕рдХрд╛ рдХреЛрдИ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИ (рдпрд╛ рдореИрдВрдиреЗ рдЗрд╕реЗ рдпрд╛рдж рдХрд┐рдпрд╛ рд╣реИ)ред

рдкреВрд░реА рдмрд╛рдзреНрдпрдХрд╛рд░реА рдХрд╣рд╛рдиреА рдореЗрдВ, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ "рдХреМрди" рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ
рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВ:

  • рдХреНрдпрд╛ рдпрд╣ рдПрдХ рдХрдВрдкрд╛рдЗрд▓рд░ рд╣реИ (рдЬреЛ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рд╡рд╛рд╕рдо рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдмрджрд▓ рджреЗрддрд╛ рд╣реИ)?
  • рдХреНрдпрд╛ рдпрд╣ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓реЗрдЦрдХ рд╣реИ (рдФрд░ рдЗрд╕рд▓рд┐рдП, рдХреНрдпрд╛ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рд╣рд╛рде рд╕реЗ рд▓рд┐рдЦреА рдЧрдИ рд╣реИ)?

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

рднрд▓реЗ рд╣реА рдЙрджреНрджреЗрд╢реНрдп рд╡реЗрдм рдЖрдИрдбреАрдПрд▓ рдХреЛ рдХрдо рд╡реЗрдм-рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "рд░реАрдлреЛрдХрд╕" рдХрд░рдирд╛ рд╣реИ, рдЕрднреА,
рдпрд╣ рдмрд╣реБрдд рд╡реЗрдм рдХреЗрдВрджреНрд░рд┐рдд рд╣реИред рдФрд░ рд╡рд┐рдХрд▓реНрдк рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╕реНрддрд╛рд╡ рдЙрдарддреЗ рд╣реИрдВ,
рдЗрд╕рд▓рд┐рдП рдпрд╣ рдзрд╛рдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рдореИрдВ рд╕рдВрднрд╛рд╡рд┐рдд рд╡рд┐рдЦрдВрдбрди рд╕реЗ рдЪрд┐рдВрддрд┐рдд рд╣реВрдВред
рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ (рдФрд░ рдЗрд╕ рддрд░рд╣ рд╡рд╛рд╕рдо рдХреЛ рдЕрдм рддрдХ рдбрд┐рдЬрд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛), рдПрдХ рд╡рд╛рд╕рдо рдореЙрдбреНрдпреВрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛
рдЗрд╕рдХреА рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рд╕рд╣рд┐рдд, рдЗрд╕реЗ рдХрд╣реАрдВ рднреА рдЪрд▓рд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИред рд╕рд╛рде рдореЗрдВ
Web IDL, Cap'n' Proto, FlatBuffers, рдЬреЛ рднреА рд╣реЛ, рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдмрд╛рдЗрдВрдбрд┐рдВрдЧ
рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рднреА рдХрдВрдкрд╛рдЗрд▓рд░ рдпрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓реЗрдЦрдХ рдПрдХ рд╣реА рдирд╣реАрдВ рд▓рд┐рдЦреЗрдВрдЧреЗ
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рд╕рд┐рдВрдЯреИрдХреНрд╕ рдореЗрдВ рдмрд╛рдЗрдВрдбрд┐рдВрдЧред рдордЬреЗ рдХреА рдмрд╛рдд рдпрд╣ рд╣реИ
рд╣рд╕реНрддрд▓рд┐рдЦрд┐рдд рдмрдВрдзрдиреЛрдВ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдПрдХ рддрд░реНрдХ: рд▓реЛрдЧ рдЗрд╕рдореЗрдВ рдпреЛрдЧрджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
рдордВрдЪ рдкреА рдХреЗ рд▓рд┐рдП рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рд▓рд┐рдЦрдХрд░ рдХрд╛рд░реНрдпрдХреНрд░рдоред рд▓реЗрдХрд┐рди рдорд╛рди рд▓реЗрдВ рдХрд┐ рдпрд╣ рдирд╣реАрдВ рд╣реЛрдЧрд╛
рдмрд┐рд▓реНрдХреБрд▓ рдЖрджрд░реНрд╢ред

рддреЛ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ: рдореИрдВ рд╡реЗрдм рдФрд░ рдХреЗ рдмреАрдЪ рд╕рдВрднрд╛рд╡рд┐рдд рд╡рд┐рдЦрдВрдбрди рд╕реЗ рдЪрд┐рдВрддрд┐рдд рд╣реВрдВ
рдЧреИрд░-рд╡реЗрдм рдмрд╛рдЗрдВрдбрд┐рдВрдЧред рдпрджрд┐ рдПрдХ рдЧреИрд░-рд╡реЗрдм рдмрд╛рдзреНрдпрдХрд╛рд░реА рднрд╛рд╖рд╛ рдЖрдпреЛрдЬрд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ, рддреЛ рдХреНрдпрд╛ рдпрд╣ рд╣реЛрдЧрд╛?
рд╡реЗрдм рдмреНрд░рд╛рдЙрдЬрд╝рд░ рджреНрд╡рд╛рд░рд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд░реВрдк рд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛? рдЙрдиреНрд╣реЗрдВ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛
рдмрд╛рдЗрдВрдбрд┐рдВрдЧ "рд╡рд╛рд╕рдо рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рд▓реИрдВрдЧреНрд╡реЗрдЬ рдмреА рд╡реЗрдм рдЖрдИрдбреАрдПрд▓"ред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╣ рд╡рд╣реА рд╣реИ
рд╕рднреА рдореЗрдЬрдмрд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рджреГрд╢реНрдп: Wasm рдмрд╛рдзреНрдпрдХрд╛рд░реА рднрд╛рд╖рд╛ B рд╣реЛрд╕реНрдЯ APIред

рдЙрддреНрд╕реБрдХ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рдореИрдВ рд╡рд╛рд╕рдорд░ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдореИрдВ PHP рдХрд╛ рд▓реЗрдЦрдХ рд╣реВрдВ-
https://github.com/wasmerio/php-ext-wasm , рдкрд╛рдпрдерди-
https://github.com/wasmerio/python-ext-wasm , рд░реВрдмреА-
https://github.com/wasmerio/ruby-ext-wasm рдФрд░ Go-
https://github.com/wasmerio/go-ext-wasm Wasm рдЗрдВрдЯреАрдЧреНрд░реЗрд╢рдиред рд╣рдо рд╢реБрд░реВ рдХрд░реЗрдВ
рдмрд╣реБрдд рдЕрд▓рдЧ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЛ рд╣реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рдЦреЗрд▓ рдХрд╛ рдореИрджрд╛рди рд╣реЛрдирд╛
рдореЗрдЬрдмрд╛рдиред рдЕрдЧрд░ рдХреЛрдИ рдЪрд╛рд╣рддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░реВрдБ, рдПрдХрддреНрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рдлреАрдбрдмреИрдХ, рдпрд╛ рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ, рд╣рдо рд╕рднреА рдЦреБрд▓реЗ рд╣реИрдВ рдФрд░ рд╕рд╣рдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВ
рдФрд░ рдЙрд╕ рдкрд░ рдЕрдзрд┐рдХ рд╕рдВрд╕рд╛рдзрди рд▓рдЧрд╛рдПрдВред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/WebAssembly/design/issues/1274?email_source=notifications&email_token=AAQAXUD6WA22DDUS7PYQ6F3P4DHYRA5CNFSM4HJUHVG2YY3PNVWWK3TUL52HS4DFVREXG43VMVBJ
рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/AAQAXUGM66AWN7ZCIVBTXVTP4DHYRANCNFSM4HJUHVGQ
.

--
рдлреНрд░рд╛рдВрд╕рд┐рд╕ рдореИрдХрдХреЗрдмреЗ
рджреБрд░реНрднрд╛рдЧреНрдп

рд╣рдо рдЗрд╕реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЯреВрд▓ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рд░реЗрдл рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреА рдХрдард┐рдирд╛рдИ рдХреЗ рд╕рд╛рде рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред

рдореИрдВ рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдмрд╛рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рд▓реЗрдХрд┐рди Rust + wasm-bindgen рдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╣реИ:

рддреЛ рдореИрдВ рдЙрддреНрд╕реБрдХ рд╣реВрдВ: рдЖрдк рдХрд┐рди рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдХрд╛ рдЬрд┐рдХреНрд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореЗрд░реА рд╕рдордЭ C++ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЕрдзрд┐рдХ рд╣реИред рднрд╛рд╖рд╛ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЗрд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рдЙрдЪрд┐рдд рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрдВрдЧ рдХреЗ рдкрд╛рд╕ рдкрд░реНрдпрд╛рдкреНрдд рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдореЗрдЯрд╛рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рд▓реИрдВрдб рд╕реА ++ рдореЗрдВ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рд░реЗрдлрд░реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрдард┐рди рд╕рдордп рд╣реИред

рдореИрдВ рдпрд╣рд╛рдВ рд╕реА ++ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдореБрджреНрджреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХ рд╣реВрдВред (рдХреНрдпрд╛ рд╡реЗ рд╕реА ++ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдпрд╛ рдПрд▓рдПрд▓рд╡реАрдПрдо рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИрдВ?)

рд╕реА ++ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рд░реЗрдл рдкреНрд░рдХрд╛рд░ рдХреНрдпрд╛ рд╣реИред рддреЛ рдЖрдк рдЗрд╕реЗ рдЕрдВрджрд░ рдирд╣реАрдВ рд░рдЦ рд╕рдХрддреЗ a
рдордирдорд╛рдирд╛ рд╡рд╕реНрддреБред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рднрд╛рд╖рд╛ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рд╣реИ; рдПрдХ рдлрд╝рд╛рдЗрд▓ рдХреА рддрд░рд╣ рдЕрдзрд┐рдХ
рд╡рд░реНрдгрдирдХрд░реНрддрд╛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдордЬреЗрджрд╛рд░ рдЬрдЧрд╣ред

рд╕реЛрдо, рдЬреВрди 24, 2019 3:07 PM рдкрд░ рдПрд▓рди Zakai рдкрд░ рдкрд░ [email protected] рд▓рд┐рдЦрд╛ рд╣реИ:

рдореИрдВ рдпрд╣рд╛рдВ рд╕реА ++ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдореБрджреНрджреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХ рд╣реВрдВред (рдХреНрдпрд╛ рд╡реЗ рд╣реИрдВ
рд╕реА ++ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдпрд╛ рдПрд▓рдПрд▓рд╡реАрдПрдо рд╡рд┐рд╢рд┐рд╖реНрдЯ?)

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/WebAssembly/design/issues/1274?email_source=notifications&email_token=AAQAXUDW237MUBBUUJLKS6LP4FARJA5CNFSM4HJUHVG2YY3PNVWWK3TUL52HS4DFVREXG43VMVBJKT74P рдореБрджреНрджрд╛ -50HWUL52HS4DFVREXG43VMVBJKT74PN
рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/AAQAXUB4O3ZX4LRQSQRL763P4FARJANCNFSM4HJUHVGQ
.

--
рдлреНрд░рд╛рдВрд╕рд┐рд╕ рдореИрдХрдХреЗрдмреЗ
рджреБрд░реНрднрд╛рдЧреНрдп

@fgmccabe рдСрдлрд╝рд▓рд╛рдЗрди рд╕реЗ рдмрд╛рдд рдХрд░рддреЗ

рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЙрддреНрд╕реБрдХ рд░рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣рд╛рдВ рд╕реА ++ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╡рд╣рд╛рдБ рд╣реИ?

рд╕реА ++ рдХреЛ рдпрд╣рд╛рдВ рдХрдард┐рди рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореЗрд░реА рд╕рдордЭ рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдкрдиреЗ рдХрд╣рд╛ рд╣реИ:

struct Anyref; // opaque declaration
void console_log(Anyref* item); // declaration of ref-taking external JS API
Anyref* document_getElementById(const char* str);

void wellBehaved() {
  // This should work
  Anyref* elem = document_getElementById("foo");
  console_log(elem);
}

void notSoWellBehaved() {
  // ????
  Anyref* elem = document_getElementById("bar");
  Anyref* what = (Anyref*)((unsigned int)elem + 1);
  console_log(what);
}

рдЕрдЪреНрдЫреА рдЦрдмрд░ рдпрд╣ рд╣реИ рдХрд┐ рдмрд╛рдж рдХрд╛ рдЙрджрд╛рд╣рд░рдг рдпреВрдмреА рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ (рдЕрдорд╛рдиреНрдп рдкреЙрдЗрдВрдЯрд░реНрд╕ рдпреВрдмреА рдЬреИрд╕реЗ рд╣реА рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ), рд▓реЗрдХрд┐рди рд╣рдо рдЗрд╕реЗ рдПрд▓рдПрд▓рд╡реАрдПрдо рдЖрдИрдЖрд░ рдореЗрдВ рдореЙрдбрд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХреИрд╕реЗ рдХрд░рддреЗ рд╣реИрдВ?

@ jgravelle-google рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ struct Anyref; рдорд╛рдирддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдРрд╕рд╛ рдХреБрдЫ рд╣реИ рдЬреЛ рд░реИрдЦрд┐рдХ рд╕реНрдореГрддрд┐ рдореЗрдВ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдЗрд╕реЗ рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рд╣реИрдВрдбрд▓ рдХреЗ рд╕рд╛рде рдореЙрдбрд▓ рдХреНрдпреЛрдВ рди рдХрд░реЗрдВ рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреИрд╕реЗ рдУрдкрдирдЬреАрдПрд▓ рдмрдирд╛рд╡рдЯ, рдлрд╝рд╛рдЗрд▓ рд╣реИрдВрдбрд▓, рдФрд░ рдЖрдЧреЗ?

using Anyref = uint32_t; // handle declaration
void console_log(Anyref item); // declaration of ref-taking external JS API
Anyref document_getElementById(const char* str);

void wellBehaved() {
  // This should work
  Anyref elem = document_getElementById("foo");
  console_log(elem);
}

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

рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдлрд┐рд░ рдЖрдкрдХреЛ table_free(elem) рдкрд░ рдХреЙрд▓ рдХрд░рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдпрд╛ рдЖрдк рдЗрд╕рдХрд╛ рд╕рдВрджрд░реНрдн рд╣рдореЗрд╢рд╛ рдХреЗ рд▓рд┐рдП рд░рдЦреЗрдВрдЧреЗред рдЬреЛ рд╕реА ++ рдХреЗ рд▓рд┐рдП рдЕрдЬреАрдм рдирд╣реАрдВ рд╣реИ, рджреА рдЧрдИ рд╣реИред

рдпрд╣ рдПрдХ рдЕрдЬреАрдм рдореИрдкрд┐рдВрдЧ рдХрд╛ рдХреБрдЫ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкрд░рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ? рдЬреИрд╕реЗ рдпрд╣ рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ рдПрдХ рд▓рд╛ рдУрдкрдирдЬреАрдПрд▓, рд▓реЗрдХрд┐рди рдпрд╣ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдВрдкрд╛рдЗрд▓рд░ рдЬрд╛рджреВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ - рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЖрдк рдЗрдирд▓рд╛рдЗрди-рд╡рд╛рд╕ рдХреЗ рд╕рд╛рде рднреА рд╕реА ++ рдореЗрдВ anyref.h рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдпрджрд┐ рдЖрдк рдПрдХ рдЕрд▓рдЧ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИрдВ рдЯреЗрдмрд▓ред

рд╡реИрд╕реЗ рднреА рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдм рдХрд░рдиреЗ рдпреЛрдЧреНрдп/рдЯреНрд░реИрдХреНрдЯреЗрдмрд▓ рд╣реИ, рд▓реЗрдХрд┐рди рд╕реАрдзреЗ-рд╕реАрдзреЗ рдирд╣реАрдВ рд╣реИред

@kripken рдпрд╣ рд╕рдЪ рд╣реИ рдХрд┐ "рдЙрдЪрд┐рдд" рдореВрд▓ anyref рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП LLVM (рдФрд░ rustc рдореЗрдВ) рдореЗрдВ рдХреБрдЫ рдмрджрд▓рд╛рд╡реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдмрд╛рдзрд╛ рдирд╣реАрдВ рд╣реИред

wasm-bindgen рд╡рд╛рд╕реНрддрд╡рд┐рдХ wasm anyref s рдХреЛ рдПрдХ wasm рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рд░реИрдЦрд┐рдХ рд╕реНрдореГрддрд┐ рдореЗрдВ рдпрд╣ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред рддреЛ рдпрд╣ wasm table.get рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ anyref рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддрд╛ рд╣реИред

wasm-gc рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рддрдХ, GC рднрд╛рд╖рд╛рдУрдВ рдХреЛ рдареАрдХ рдЙрд╕реА рд░рдгрдиреАрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЗрд╕рд▓рд┐рдП Rust (et al) рдЧрд╛рдпрдм рдирд╣реАрдВ рд╣реИрдВред

рддреЛ LLVM рдореЗрдВ рдореВрд▓ anyref рд╕рдорд░реНрдерди рд╕реЗ рд╣рдореЗрдВ рдХреНрдпрд╛ рд▓рд╛рдн рд╣реЛрдЧрд╛? рдЦреИрд░, рдпрд╣ рдПрдХ wasm рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ anyref рдХреЛ рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрдЬрд╛рдп, рдХрд╛рд░реНрдпреЛрдВ рд╕реЗ рд╕реАрдзреЗ anyref рдкрд╛рд╕/рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛ред рдпрд╣ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛, рд╣рд╛рдБ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рдкреНрд░рджрд░реНрд╢рди рдЕрдиреБрдХреВрд▓рди рд╣реИ, рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ anyref рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдирд╣реАрдВ рд░реЛрдХрддрд╛ рд╣реИред

@рдкреМрдЖрди

wasm-bindgen рд╡рд╛рд╕реНрддрд╡рд┐рдХ wasm anyrefs рдХреЛ wasm рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рд░реИрдЦрд┐рдХ рд╕реНрдореГрддрд┐ рдореЗрдВ рдпрд╣ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред рддреЛ рдпрд╣ wasm table.get рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рд╕реА рднреА рд░реЗрдлрд░реА рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддрд╛ рд╣реИред

рдмрд┐рд▓реНрдХреБрд▓, рд╣рд╛рдБ, рдпрд╣реА рд╡рд╣ рдореЙрдбрд▓ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдореИрдВ рдЬрд┐рдХреНрд░ рдХрд░ рд░рд╣рд╛ рдерд╛ред

wasm-gc рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рддрдХ, GC рднрд╛рд╖рд╛рдУрдВ рдХреЛ рдареАрдХ рдЙрд╕реА рд░рдгрдиреАрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЗрд╕рд▓рд┐рдП Rust (et al) рдЧрд╛рдпрдм рдирд╣реАрдВ рд╣реИрдВред

рд╣рд╛рдВ, рдЕрднреА GC рднрд╛рд╖рд╛рдУрдВ рдХрд╛ рдХреЛрдИ рдлрд╛рдпрджрд╛ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреЛрдИ рджреЗрд╢реА wasm GC рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдмрджрд▓реЗрдЧрд╛! :) рдЖрдЦрд┐рд░рдХрд╛рд░ рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЬреАрд╕реА рднрд╛рд╖рд╛рдУрдВ рдХреЛ рдпрд╣рд╛рдВ рд╕реНрдкрд╖реНрдЯ рд▓рд╛рдн рд╣реЛрдЧрд╛, рдХрдо рд╕реЗ рдХрдо рдЕрдЧрд░ рд╣рдо рдЬреАрд╕реА рдареАрдХ рд╕реЗ рдХрд░рддреЗ рд╣реИрдВред

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

рд╕рд╣рдордд, рд╣рд╛рдБ, рдпрд╣ рдХреЗрд╡рд▓ рд╕реА ++ рдФрд░ рдЬрдВрдЧ рдЖрджрд┐ рдкрд░ рдЬреАрд╕реА рднрд╛рд╖рд╛рдУрдВ (рдЕрдВрддрддрдГ) рдХрд╛ рдПрдХ рдкреВрд░реНрдг рд▓рд╛рдн рд╣реЛрдЧрд╛ред рдпрд╣ рдЙрдкрдпреЛрдЧ рдХреЛ рд░реЛрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рд╕реА ++ рдФрд░ рдЬрдВрдЧ рдХреЗ рд▓рд┐рдП рд╕рд╛рдЗрдХрд┐рд▓ рдПрдХ рдмрдбрд╝реА рд╕рдорд╕реНрдпрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЯреЗрдмрд▓ рд░реВрдЯ рдХреЗ рдмрд╛рдж рд╕реЗред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдЯреНрд░реЗрд╕рд┐рдВрдЧ рдПрдкреАрдЖрдИ рдпрд╛ "рдЫрд╛рдпрд╛ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕" рд╣реЛ, рдореВрд▓ рд░реВрдк рд╕реЗ рд╕реА ++/рд░рд╕реНрдЯ рдХреЗ рдЕрдВрджрд░ рдЬреАрд╕реА рд▓рд┐рдВрдХ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдореИрдк рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ рддрд╛рдХрд┐ рдмрд╛рд╣рд░реА рдЬреАрд╕реА рдЙрдиреНрд╣реЗрдВ рд╕рдордЭ рд╕рдХреЗред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдЕрднреА рддрдХ рдХреЛрдИ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреНрд░рд╕реНрддрд╛рд╡ рд╣реИред

рдЖрдЦрд┐рд░рдХрд╛рд░ рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЬреАрд╕реА рднрд╛рд╖рд╛рдУрдВ рдХреЛ рдпрд╣рд╛рдВ рд╕реНрдкрд╖реНрдЯ рд▓рд╛рдн рд╣реЛрдЧрд╛, рдХрдо рд╕реЗ рдХрдо рдЕрдЧрд░ рд╣рдо рдЬреАрд╕реА рдареАрдХ рд╕реЗ рдХрд░рддреЗ рд╣реИрдВред

рдореИрдВ рдЧрд▓рдд рд╣реЛ рд╕рдХрддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдРрд╕рд╛ рд╣реЛрддрд╛ рддреЛ рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реЛрддрд╛: GC рднрд╛рд╖рд╛рдУрдВ рдХреЛ рдПрдХ wasm GC рд╕рдВрд░рдЪрдирд╛ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреА рд╣реЛрдЧреА рдФрд░ рдлрд┐рд░ wasm рдЗрдВрдЬрди рдХреЛ рдЙрд╕ рдкрд░ рдирдЬрд╝рд░ рд░рдЦрдиреА рд╣реЛрдЧреА рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрд╣рддрд╛ рд╣реИред

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

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ anyref рдкрд╣реБрдВрдЪ рдЬреАрд╕реА рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рди рдпреЛрдЧреНрдп рд╣реЛ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ table.get рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреА, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ table.get рдХрд╛рдлреА рддреЗрдЬ рд╣реЛрдЧрд╛ред

рддреЛ рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдПрдХ wasm-gc рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ wasm рдЯреЗрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╕реЗ рдмреЗрд╣рддрд░ рдкреНрд░рджрд░реНрд╢рди рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рдХреИрд╕реЗ рдХрд░рддреЗ рд╣реИрдВ?

рдкреАрдПрд╕ рдпрд╣ рдмрд╣реБрдд рджреВрд░ рд╡рд┐рд╖рдп рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд░рд╣рд╛ рд╣реИ, рддреЛ рд╢рд╛рдпрдж рд╣рдореЗрдВ рдЗрд╕ рдЪрд░реНрдЪрд╛ рдХреЛ рдПрдХ рдирдП рд╕реВрддреНрд░ рдореЗрдВ рд▓реЗ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП?

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╕ рдпрд╣реА: table.get/table.set рд╕реЗ рдкрд░рд╣реЗрдЬ рдХрд░рдирд╛ред рдЬреАрд╕реА рдХреЗ рд╕рд╛рде рдЖрдкрдХреЗ рдкрд╛рд╕ рдХрдЪреНрдЪреЗ рд╕реВрдЪрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд╕рдВрдХреЗрддреЛрдВ рдХреЛ рд╕рд╣реЗрдЬрдирд╛ред рд▓реЗрдХрд┐рди рд╣рд╛рдБ, рдЖрдк рд╕рд╣реА рдХрд╣ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдЬрдВрдЧ рдФрд░ рд╕реА ++ рдХреЛ рдХреЗрд╡рд▓ рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рд╡реЗ рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░ рдмрд╣реБрдд рддреЗрдЬрд╝ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдХреЛрдИ рднреА рдЬреАрд╕реА рд▓рд╛рдн рдорд╛рдпрдиреЗ рдирд╣реАрдВ рд░рдЦрддрд╛ рд╣реИ!

рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рд╣рдо рд╡рд┐рд╖рдп рд╕реЗ рд╣рдЯ рд░рд╣реЗ рд╣реИрдВ, рд╣рд╛рдБред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд┐рд╖рдп рдкрд░ рдХреНрдпрд╛ рд╣реИ @fgmccabe рдХрд╛ рдмрд┐рдВрджреБ рд╣реИ рдХрд┐ рд░реЗрдл рдкреНрд░рдХрд╛рд░ рд░реИрдЦрд┐рдХ рд╕реНрдореГрддрд┐-рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реА рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред рдпрд╣ рд╣рдореЗрдВ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдХреБрдЫ рддрд░реАрдХреЛрдВ рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ (рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЪрдХреНрд░ рдЪрд┐рдВрддрд╛рдЬрдирдХ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╕реА ++ рдФрд░ рдЬрдВрдЧ рдЙрдиреНрд╣реЗрдВ рд╕рдВрднрд╛рд▓ рдирд╣реАрдВ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдЗрд╕реЗ рдЕрдирджреЗрдЦрд╛ рдХрд░ рд╕рдХреЗрдВ?), рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рд╛рд╡рдзрд╛рди рд░рд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╕ рдХреБрдЫ - рджреЛрдиреЛрдВ рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪреАрдЬреЛрдВ рдХреЛ рдпрдерд╛рд╕рдВрднрд╡ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рджреЗрдВ, рдФрд░ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рднрд╛рд╖рд╛ рдХреА рд╕реАрдорд╛рдУрдВ рд╕реЗ рдЕрддреНрдпрдзрд┐рдХ рдкреНрд░рднрд╛рд╡рд┐рдд рди рд╣реЛрдВред

@kentonv

Cap'n Proto рдХреА рдХреНрд░рдорд╛рдВрдХрди рдкрд░рдд рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд░реВрдк рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рднрд╛рд╖рд╛ рдореЗрдВ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдПрдХ рд╡рд┐рд╕реНрддреГрдд-рд▓реЗрдХрд┐рди-рдЙрдерд▓реА API рдкрд░рдд рд╣реИ рдЬрд┐рд╕реЗ рдореБрд╣рд╛рд╡рд░реЗрджрд╛рд░ рдФрд░ рдЗрдирд▓рд╛рдЗрди-рдЕрдиреБрдХреВрд▓ рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред RPC рдкрд░рдд, OTOH, рд╕рдВрдХреАрд░реНрдг рд▓реЗрдХрд┐рди рдЧрд╣рд░реА рд╣реИ

рдХреМрди рд╕рд╛ рдлреЛрд▓реНрдбрд░ рд╣реИ?

@PoignardAzur рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореБрдЭреЗ рдЖрдкрдХрд╛ рдкреНрд░рд╢реНрди рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрдпрд╛ред

@kentonv рдореИрдВ capnproto Github рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдБред рдХреНрд░рдорд╛рдВрдХрди рдкрд░рдд рдХрд╣рд╛рдБ рд╣реИ?

@PoignardAzur рддреЛ, рдпрд╣ рдореЗрд░реА рдмрд╛рдд рдкрд░ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рднреА рдЬрдЧрд╣ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдЗрдВрдЧрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ "рд╡рд╣ рдХреНрд░рдорд╛рдВрдХрди рдкрд░рдд рд╣реИ"ред рдЕрдзрд┐рдХрддрд░, Cap'n Proto рдХрд╛ "рдХреНрд░рдордмрджреНрдзрддрд╛" рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдмрдлрд░ рдореЗрдВ рд▓реЛрдб/рд╕реНрдЯреЛрд░ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреЗрд╡рд▓ рд╕реВрдЪрдХ рдЕрдВрдХрдЧрдгрд┐рдд рд╣реИред рдПрдХ рд╕реНрдХреАрдорд╛ рдлрд╝рд╛рдЗрд▓ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдЖрдк рдПрдХ рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдЬрдирд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЗрдирд▓рд╛рдЗрди рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╕реНрдХреАрдорд╛ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡рд┐рд╢реЗрд╖ рдлрд╝реАрд▓реНрдб рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдкреЙрдЗрдВрдЯрд░ рдЕрдВрдХрдЧрдгрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рдХреЛ рддрдм рдЗрди рдЬреЗрдирд░реЗрдЯ рдХрд┐рдП рдЧрдП рдПрдХреНрд╕реЗрд╕рд░реНрд╕ рдХреЛ рд╣рд░ рдмрд╛рд░ рдХрд┐рд╕реА рднреА рдлрд╝реАрд▓реНрдб рдХреЛ рдкрдврд╝рдиреЗ рдпрд╛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

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

Cap'n рдкреНрд░реЛрдЯреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рднреАрддрд░ рд╢рд╛рдпрдж рдХреБрдЫ рдЖрдВрддрд░рд┐рдХ рд╕рд╣рд╛рдпрдХ рдХрд╛рд░реНрдп рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╕рд╛рдЭрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, layout.c++ / layout.h рдореЗрдВ рд╡рд╣ рд╕рднреА рдХреЛрдб рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдХреИрдкрдирдк рдХреЗ рдкреЙрдЗрдВрдЯрд░ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рддреЗ рд╣реИрдВ, рдмрд╛рдЙрдВрдб рдЪреЗрдХрд┐рдВрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЖрджрд┐ред рдЬреЗрдирд░реЗрдЯ рдХреЛрдб рдПрдХреНрд╕реЗрд╕рд░реНрд╕ рдкреЙрдЗрдВрдЯрд░ рдлрд╝реАрд▓реНрдб рдХреЛ рдкрдврд╝рддреЗ/рд▓рд┐рдЦрддреЗ рд╕рдордп рдЙрд╕ рдХреЛрдб рдореЗрдВ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВред рддреЛ рдореИрдВ рд╢рд╛рдпрдж рдХрд▓реНрдкрдирд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдЙрд╕ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдПрдлрдПрдлрдЖрдИ рдореЗрдВ рдХрдИ рднрд╛рд╖рд╛рдУрдВ рд╕реЗ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ; рд▓реЗрдХрд┐рди рдореИрдВ рдЕрднреА рднреА рдкреНрд░рддреНрдпреЗрдХ рд▓рдХреНрд╖рд┐рдд рднрд╛рд╖рд╛ рдореЗрдВ рдХреЛрдб рдЬреЗрдирд░реЗрдЯрд░ рдФрд░ рдХреБрдЫ рд░рдирдЯрд╛рдЗрдо рд╕рдорд░реНрдерди рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реВрдВред

рд╣рд╛рдБ, рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореЗрд░рд╛ рдорддрд▓рдм рд╡рд┐рдкрд░реАрдд ^^ (рдЖрд░рдкреАрд╕реА рдкрд░рдд) рдерд╛

@PoignardAzur рдУрд╣, рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЛ рджреЗрдЦрдиреЗ рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рд╕реЛрдЪ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдПрдлрдПрдлрдЖрдИ рдореЗрдВ рдХреИрд╕реЗ рд▓рдкреЗрдЯрдирд╛ рд╣реИред рддреЛ рдлрд┐рд░ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ:

  • capability.h : рдХреНрд╖рдорддрд╛рдУрдВ рдФрд░ рдЖрд░рдкреАрд╕реА рдЖрдордВрддреНрд░рдг рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рд░ рдЗрдВрдЯрд░рдлреЗрд╕, рдЬреЛ рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред (рдпрд╣ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред)
  • rpc.h : рдПрдХ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ RPC рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиред
  • rpc-twoparty.h : рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдХрдиреЗрдХреНрд╢рди рдкрд░ RPC рдХреЗ рд▓рд┐рдП рдЯреНрд░рд╛рдВрд╕рдкреЛрд░реНрдЯ рдПрдбреЙрдкреНрдЯрд░ред

рдЗрд╕ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЛ рдЕрдм #1291: OCAP рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

jfbastien picture jfbastien  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

cretz picture cretz  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

badumt55 picture badumt55  ┬╖  8рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ghost picture ghost  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

beriberikix picture beriberikix  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ