{"id":101965,"date":"2025-03-17T20:04:43","date_gmt":"2025-03-17T16:34:43","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/looking-ahead-to-wasip3-5aem\/"},"modified":"2025-03-17T20:04:43","modified_gmt":"2025-03-17T16:34:43","slug":"looking-ahead-to-wasip3-5aem","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/looking-ahead-to-wasip3-5aem\/","title":{"rendered":"\u0628\u0627 \u0646\u06af\u0627\u0647\u06cc \u0628\u0647 \u062c\u0644\u0648 \u0628\u0647 WASIP3 &#8211; \u062c\u0627\u0645\u0639\u0647 dev"},"content":{"rendered":"<div data-article-id=\"2338279\" id=\"article-body\">\n<p><strong>\u062a\u0648\u0633\u0637: Joel Dice<\/strong><\/p>\n<p>\u067e\u06cc\u0634 \u0646\u0645\u0627\u06cc\u0634 \u0631\u0627\u0628\u0637 \u0633\u06cc\u0633\u062a\u0645 WebAssembly 3 (\u06cc\u0627 WASIP3 \u0628\u0631\u0627\u06cc \u06a9\u0648\u062a\u0627\u0647) \u0646\u0633\u062e\u0647 \u0627\u0635\u0644\u06cc \u0628\u0639\u062f\u06cc WASI \u0627\u0633\u062a \u060c \u0645\u062c\u0645\u0648\u0639\u0647 \u0627\u06cc \u0627\u0632 API \u0647\u0627\u06cc \u0631\u062f\u06cc\u0627\u0628\u06cc \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f \u0628\u0631\u0627\u06cc \u062a\u0648\u0633\u0639\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u0642\u0627\u0628\u0644 \u062d\u0645\u0644 \u0628\u0627 WebAnsembly. \u0627\u06cc\u0646 \u0646\u0633\u062e\u0647 \u0634\u0627\u0645\u0644 \u067e\u06cc\u0634\u0631\u0641\u062a \u0647\u0627\u06cc \u0642\u0627\u0628\u0644 \u062a\u0648\u062c\u0647\u06cc \u062f\u0631 \u0645\u062f\u0644 \u0645\u0624\u0644\u0641\u0647 \u0627\u0635\u0644\u06cc &#8211; \u0627\u0632 \u062c\u0645\u0644\u0647 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0628\u0631\u0627\u06cc \u06a9\u0644\u0627\u0633 \u0627\u0648\u0644 \u060c \u0647\u0645\u0632\u0645\u0627\u0646\u06cc \u0642\u0627\u0628\u0644 \u062a\u0631\u06a9\u06cc\u0628 &#8211; \u062f\u0631 \u062d\u0627\u0644\u06cc \u06a9\u0647 \u0633\u0627\u0632\u06af\u0627\u0631\u06cc \u0628\u0627 \u0646\u0633\u062e\u0647 WASIP2 \u0645\u0648\u062c\u0648\u062f \u0631\u0627 \u062d\u0641\u0638 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u067e\u0633\u062a \u060c \u0645\u0627 \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc \u062c\u062f\u06cc\u062f\u06cc \u0631\u0627 \u0628\u0627 WASIP3 \u062e\u0644\u0627\u0635\u0647 \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f \u060c \u0628\u0647 \u0648\u0636\u0639\u06cc\u062a \u062a\u0644\u0627\u0634 \u0647\u0627\u06cc \u0627\u062c\u0631\u0627\u06cc \u0622\u0646 \u0646\u06af\u0627\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u0648 \u062f\u0631 \u0646\u0647\u0627\u06cc\u062a \u06cc\u06a9 \u0646\u0645\u0648\u0646\u0647 \u062f\u0631 \u062f\u0646\u06cc\u0627\u06cc \u0648\u0627\u0642\u0639\u06cc \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u0627\u0632 \u0622\u0646 \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc \u062c\u062f\u06cc\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter-rtl ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">\u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"\u062a\u063a\u06cc\u06cc\u0631 \u0648\u0636\u0639\u06cc\u062a \u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/nabfollower.com\/blog\/looking-ahead-to-wasip3-5aem\/#%D8%AF%D8%B1%D8%A8%D8%A7%D8%B1%D9%87_WASI_%D9%88_%D9%85%D8%AF%D9%84_%D9%85%D8%A4%D9%84%D9%81%D9%87_WebAssembly\" >\u062f\u0631\u0628\u0627\u0631\u0647 WASI \u0648 \u0645\u062f\u0644 \u0645\u0624\u0644\u0641\u0647 WebAssembly<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/nabfollower.com\/blog\/looking-ahead-to-wasip3-5aem\/#%D9%88%DB%8C%DA%98%DA%AF%DB%8C_%D9%87%D8%A7%DB%8C_%D8%AC%D8%AF%DB%8C%D8%AF_%D8%AF%D8%B1_WASIP3\" >\u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc \u062c\u062f\u06cc\u062f \u062f\u0631 WASIP3<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/nabfollower.com\/blog\/looking-ahead-to-wasip3-5aem\/#%D9%88%D8%B6%D8%B9%DB%8C%D8%AA_WASIP3\" >\u0648\u0636\u0639\u06cc\u062a WASIP3<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/nabfollower.com\/blog\/looking-ahead-to-wasip3-5aem\/#wasi-http_%D9%86%D9%85%D9%88%D9%86%D9%87_%D8%B8%D8%B1%D9%88%D9%81_%D9%88%D8%B3%D8%B7\" >wasi-http  \u0646\u0645\u0648\u0646\u0647 \u0638\u0631\u0648\u0641 \u0648\u0633\u0637<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/nabfollower.com\/blog\/looking-ahead-to-wasip3-5aem\/#%D9%85%D8%B1%D8%A7%D8%AD%D9%84_%D8%A8%D8%B9%D8%AF%DB%8C\" >\u0645\u0631\u0627\u062d\u0644 \u0628\u0639\u062f\u06cc<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/nabfollower.com\/blog\/looking-ahead-to-wasip3-5aem\/#%D8%AA%D8%B5%D8%AF%DB%8C%D9%82\" >\u062a\u0635\u062f\u06cc\u0642<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D8%AF%D8%B1%D8%A8%D8%A7%D8%B1%D9%87_WASI_%D9%88_%D9%85%D8%AF%D9%84_%D9%85%D8%A4%D9%84%D9%81%D9%87_WebAssembly\"><\/span>\n<p>  \u062f\u0631\u0628\u0627\u0631\u0647 WASI \u0648 \u0645\u062f\u0644 \u0645\u0624\u0644\u0641\u0647 WebAssembly<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>WASI (\u0631\u0627\u0628\u0637 \u0633\u06cc\u0633\u062a\u0645 WebAssembly) \u0645\u062c\u0645\u0648\u0639\u0647 \u0627\u06cc \u0627\u0632 \u0631\u0627\u0628\u0637 \u0647\u0627\u06cc\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0647\u0631 \u062f\u0648 \u0648\u06cc\u0698\u06af\u06cc \u0633\u06cc\u0633\u062a\u0645 \u0639\u0627\u0645\u0644 \u0633\u0646\u062a\u06cc (\u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644 \u067e\u0631\u0648\u0646\u062f\u0647 I\/O \u060c \u0633\u0627\u0639\u062a \u0648 \u0634\u0628\u06a9\u0647) \u0648 \u0647\u0645\u0686\u0646\u06cc\u0646 \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc \u062a\u062e\u0635\u0635\u06cc \u062a\u0631 \u0645\u0627\u0646\u0646\u062f \u062e\u062f\u0645\u0627\u062a \u0627\u0628\u0631\u06cc (HTTP \u060c \u062f\u0633\u062a\u0631\u0633\u06cc \u0628\u0647 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u060c \u067e\u06cc\u0627\u0645 \u0631\u0633\u0627\u0646\u06cc \u0648 \u063a\u06cc\u0631\u0647) \u060c \u0627\u0646\u062a\u0632\u0627\u0639 \u0628\u0631\u0627\u06cc \u0633\u06cc\u0633\u062a\u0645 \u0647\u0627\u06cc \u062a\u0639\u0628\u06cc\u0647 \u0634\u062f\u0647 \u060c \u0631\u0645\u0632\u0646\u06af\u0627\u0631\u06cc \u0648 \u063a\u06cc\u0631\u0647 \u0631\u0627 \u0634\u0627\u0645\u0644 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<p>\u062a\u0627 \u06a9\u0646\u0648\u0646 \u060c WASI \u062f\u0648 \u0646\u0633\u062e\u0647 \u0646\u0642\u0637\u0647 \u0639\u0637\u0641 \u062f\u0627\u0634\u062a\u0647 \u0627\u0633\u062a: 0.1 (AKA WASIP1 \u060c &#8220;\u067e\u06cc\u0634 \u0646\u0645\u0627\u06cc\u0634 1&#8221;) \u0648 0.2 (AKA WASIP2 \u060c &#8220;\u067e\u06cc\u0634 \u0646\u0645\u0627\u06cc\u0634 2&#8221;). \u062f\u0648\u0645\u06cc \u062f\u0631 \u0627\u0648\u0627\u06cc\u0644 \u0633\u0627\u0644 \u06af\u0630\u0634\u062a\u0647 \u0645\u0646\u062a\u0634\u0631 \u0634\u062f \u0648 \u0628\u0631 \u0627\u0633\u0627\u0633 \u0645\u062f\u0644 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u0633\u0627\u062e\u062a\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a \u060c \u06cc\u06a9 \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f \u067e\u06cc\u0634\u0646\u0647\u0627\u062f\u06cc \u0628\u0631\u0627\u06cc \u0628\u06cc\u0627\u0646 \u0631\u0627\u0628\u0637 \u0633\u0637\u062d \u0628\u0627\u0644\u0627 \u0627\u0632 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 WASM \u06cc\u0627 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u060c \u0627\u0645\u06a9\u0627\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u062c\u062f\u062f \u0627\u0632 \u06a9\u062f \u0632\u0628\u0627\u0646 \u0645\u062a\u0642\u0627\u0637\u0639 \u0648 \u062c\u062f\u0627\u0633\u0627\u0632\u06cc \u0648\u0627\u0628\u0633\u062a\u06af\u06cc \u0627\u06cc\u0645\u0646 \u0631\u0627 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u0642\u0628\u0644 \u0627\u0632 \u0627\u0646\u062a\u0634\u0627\u0631 WASIP2 \u060c \u062a\u0639\u062f\u0627\u062f\u06cc \u0627\u0632 \u0645\u0627 \u062f\u0631 \u0627\u062a\u062d\u0627\u062f Bytecode \u0642\u0628\u0644\u0627\u064b \u062f\u0631 \u062d\u0627\u0644 \u0646\u0645\u0648\u0646\u0647 \u0633\u0627\u0632\u06cc \u067e\u0627\u06cc\u0647 \u0647\u0627\u06cc WASIP3 \u0628\u0648\u062f\u06cc\u0645 \u0648 \u0645\u0627 \u0627\u0632 \u0622\u0646 \u0632\u0645\u0627\u0646 \u067e\u06cc\u0634\u0631\u0641\u062a \u0632\u06cc\u0627\u062f\u06cc \u062f\u0627\u0634\u062a\u0647 \u0627\u06cc\u0645. \u0627\u06af\u0631\u0686\u0647 \u0647\u0646\u0648\u0632 \u06a9\u0627\u0631\u0647\u0627\u06cc \u0645\u0647\u0645\u06cc \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f \u06a9\u0647 \u0642\u0628\u0644 \u0627\u0632 \u0627\u0646\u062a\u0634\u0627\u0631 \u0622\u0646 \u062f\u0631 \u0627\u0648\u0627\u062e\u0631 \u0633\u0627\u0644 \u062c\u0627\u0631\u06cc \u0627\u0646\u062c\u0627\u0645 \u0634\u0648\u062f \u060c \u0627\u0645\u0627 \u0627\u0646\u062a\u0638\u0627\u0631 \u062f\u0627\u0631\u06cc\u0645 \u0639\u06a9\u0633 \u0647\u0627\u06cc \u0646\u0627\u0645\u0632\u062f \u0627\u0646\u062a\u0634\u0627\u0631 \u0631\u0627 \u062f\u0631 \u062f\u0648 \u0645\u0627\u0647 \u0622\u06cc\u0646\u062f\u0647 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u0645 \u060c \u0628\u0627 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0622\u0632\u0645\u0627\u06cc\u0634\u06cc \u0628\u0631\u0627\u06cc \u0622\u0646 \u062f\u0633\u062a\u0647 \u0627\u0632 \u0639\u06a9\u0633\u0647\u0627\u06cc \u0641\u0648\u0631\u06cc \u06a9\u0647 \u0628\u0647 \u0632\u0648\u062f\u06cc \u062f\u0631 \u0686\u0631\u062e\u0634 \u0648 \u0633\u0627\u06cc\u0631 \u0632\u0645\u0627\u0646 \u0647\u0627\u06cc \u0645\u062d\u0628\u0648\u0628 \u062f\u0631 \u062d\u0627\u0644 \u0641\u0631\u0648\u062f \u0622\u0645\u062f\u0646 \u0647\u0633\u062a\u0646\u062f. \u0627\u06cc\u0646 \u0632\u0645\u0627\u0646 \u0647\u0627\u06cc \u0627\u062c\u0631\u0627 \u0627\u0632 WASI \u0628\u0631\u0627\u06cc \u0641\u0631\u0627\u0647\u0645 \u06a9\u0631\u062f\u0646 \u06cc\u06a9 \u0645\u062d\u06cc\u0637 \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f \u0628\u0631\u0627\u06cc \u0645\u0627\u0698\u0648\u0644 \u0647\u0627\u06cc WebAssembly \u0628\u0631\u0627\u06cc \u062a\u0639\u0627\u0645\u0644 \u0628\u0627 \u0633\u06cc\u0633\u062a\u0645 \u0645\u06cc\u0632\u0628\u0627\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u0646\u062f.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D9%88%DB%8C%DA%98%DA%AF%DB%8C_%D9%87%D8%A7%DB%8C_%D8%AC%D8%AF%DB%8C%D8%AF_%D8%AF%D8%B1_WASIP3\"><\/span>\n<p>  \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc \u062c\u062f\u06cc\u062f \u062f\u0631 WASIP3<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0645\u0648\u0636\u0648\u0639 \u0627\u0635\u0644\u06cc WASIP3 \u0647\u0645\u0632\u0645\u0627\u0646\u06cc \u0633\u0627\u0632\u0646\u062f\u0647 \u0627\u0633\u062a. \u0646\u0633\u062e\u0647 \u0647\u0627\u06cc \u0642\u0628\u0644\u06cc \u0627\u0632 I\/O \u0627\u0632 \u0637\u0631\u06cc\u0642 A \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc \u06a9\u0646\u0646\u062f <code>poll<\/code> \u0639\u0645\u0644\u06a9\u0631\u062f\u06cc \u06a9\u0647 \u0645\u062c\u0645\u0648\u0639\u0647 \u0627\u06cc \u0627\u0632 \u062f\u0633\u062a\u0647 \u0647\u0627 \u0631\u0627 \u0646\u0634\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f \u06a9\u0647 \u0648\u0638\u0627\u06cc\u0641 \u062f\u0631 \u062d\u0627\u0644 \u067e\u06cc\u0634\u0631\u0641\u062a \u0631\u0627 \u0646\u0634\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f \u060c \u0645\u0633\u062f\u0648\u062f \u0645\u06cc \u0634\u0648\u062f \u062a\u0627 \u062d\u062f\u0627\u0642\u0644 \u06cc\u06a9\u06cc \u0627\u0632 \u0622\u0646\u0647\u0627 \u062a\u06a9\u0645\u06cc\u0644 \u0634\u0648\u062f. \u0627\u06cc\u0646 \u0628\u0631\u0627\u06cc \u0628\u0633\u06cc\u0627\u0631\u06cc \u0627\u0632 \u0627\u0647\u062f\u0627\u0641 \u0628\u0633\u06cc\u0627\u0631 \u0639\u0627\u0644\u06cc \u0639\u0645\u0644 \u0645\u06cc \u06a9\u0646\u062f \u060c \u0627\u0645\u0627 \u0628\u0627\u0639\u062b \u0645\u06cc \u0634\u0648\u062f \u0645\u0624\u0644\u0641\u0647 \u0647\u0627\u06cc \u0622\u0647\u0646\u06af\u0633\u0627\u0632\u06cc \u063a\u06cc\u0631 \u0639\u0645\u0644\u06cc \u0628\u0627\u0634\u0646\u062f \u06a9\u0647 \u0628\u06cc\u0634 \u0627\u0632 \u06cc\u06a9\u06cc \u0627\u0632 \u0622\u0646\u0647\u0627 \u0628\u0647 \u0637\u0648\u0631 \u0647\u0645\u0632\u0645\u0627\u0646 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0627\u0646\u062c\u0627\u0645 I\/O \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u0646\u062f. \u0641\u0642\u0637 \u06cc\u06a9 \u0646\u0641\u0631 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u062a\u0645\u0627\u0633 \u0628\u06af\u06cc\u0631\u062f <code>poll<\/code> \u062f\u0631 \u06cc\u06a9 \u0632\u0645\u0627\u0646 \u060c \u06a9\u0647 \u062f\u0631 \u0637\u06cc \u0622\u0646 \u0647\u06cc\u0686 \u06cc\u06a9 \u0627\u0632 \u062f\u06cc\u06af\u0631\u0627\u0646 \u0646\u0645\u06cc \u062a\u0648\u0627\u0646\u0646\u062f \u067e\u06cc\u0634\u0631\u0641\u062a \u06a9\u0646\u0646\u062f.<\/p>\n<p>\u062f\u0631 \u0645\u0642\u0627\u0628\u0644 \u060c WASIP3 \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 \u062f\u0648 \u0648\u06cc\u0698\u06af\u06cc \u0645\u0647\u0645 \u0645\u062f\u0644 \u062c\u062f\u06cc\u062f \u0645\u0624\u0644\u0641\u0647 \u0627\u0633\u062a:<\/p>\n<ul>\n<li>\n<p>\u06cc\u06a9 \u062a\u0627\u0628\u0639 \u0646\u0627\u0647\u0645\u0632\u0645\u0627\u0646 ABI: \u0627\u06cc\u0646 \u0628\u0647 \u0645\u0624\u0644\u0641\u0647 \u0647\u0627 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc \u062f\u0647\u062f \u062a\u0627 \u062a\u0648\u0627\u0628\u0639 \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 ABI \u0647\u0645\u0632\u0645\u0627\u0646 \u0645\u0648\u062c\u0648\u062f \u06cc\u0627 ABI \u062c\u062f\u06cc\u062f \u0646\u0627\u0647\u0645\u0632\u0645\u0627\u0646 \u0648\u0627\u0631\u062f \u06a9\u0646\u0646\u062f \u0648 \u06cc\u0627 \u0648\u0627\u0631\u062f\u0627\u062a \u06a9\u0646\u0646\u062f. \u0639\u0644\u0627\u0648\u0647 \u0628\u0631 \u0627\u06cc\u0646 \u060c \u0628\u0627 \u0627\u062a\u0635\u0627\u0644 \u06cc\u06a9\u067e\u0627\u0631\u0686\u0647 \u0648\u0627\u0631\u062f\u0627\u062a ASYNC \u0628\u0647 \u062a\u0648\u0627\u0628\u0639 \u0647\u0645\u06af\u0627\u0645 \u0633\u0627\u0632\u06cc \u0634\u062f\u0647 \u0648 \u0628\u0631\u0639\u06a9\u0633 \u060c \u0627\u0632 \u0645\u0634\u06a9\u0644 \u0631\u0646\u06af \u0622\u0645\u06cc\u0632\u06cc \u0639\u0645\u0644\u06a9\u0631\u062f \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<\/li>\n<li>\n<p>\u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0627\u0632 \u062f\u0627\u062e\u0644\u06cc \u060c \u0639\u0645\u0648\u0645\u06cc <code>stream<\/code> \u0648\u062a <code>future<\/code> \u0627\u0646\u0648\u0627\u0639 \u060c \u0627\u0631\u0627\u0626\u0647 \u0627\u0631\u062a\u0628\u0627\u0637\u0627\u062a \u0645\u06cc\u0632\u0628\u0627\u0646 \u06a9\u0627\u0631\u0622\u0645\u062f \u060c \u0627\u062e\u062a\u06cc\u0627\u0631\u06cc \u0646\u0627\u0647\u0645\u0632\u0645\u0627\u0646 \u060c \u0645\u0624\u0644\u0641\u0647 \u0648 \u0645\u0624\u0644\u0641\u0647 <->.<\/p>\n<\/li>\n<\/ul>\n<p>\u0628\u0627 \u0647\u0645 \u060c \u0627\u06cc\u0646 \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627 \u0647\u0645\u0632\u0645\u0627\u0646 \u0631\u0627 \u0628\u0647 \u06cc\u06a9 \u0645\u0641\u0647\u0648\u0645 \u062f\u0631\u062c\u0647 \u06cc\u06a9 \u062f\u0631 \u0645\u062f\u0644 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u062a\u0628\u062f\u06cc\u0644 \u0645\u06cc \u06a9\u0646\u0646\u062f \u0648 \u0628\u0647 \u062a\u0639\u062f\u0627\u062f \u062f\u0644\u062e\u0648\u0627\u0647 \u06a9\u0627\u0631\u0647\u0627\u06cc \u0645\u0647\u0645\u0627\u0646 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc \u062f\u0647\u0646\u062f \u062a\u0627 \u0628\u0647 \u0637\u0648\u0631 \u0647\u0645\u0632\u0645\u0627\u0646 \u062f\u0631 \u0647\u0645\u0627\u0646 \u0646\u0645\u0648\u0646\u0647 \u0645\u0624\u0644\u0641\u0647 \u0627\u062c\u0631\u0627 \u0634\u0648\u0646\u062f. \u0639\u0644\u0627\u0648\u0647 \u0628\u0631 \u0627\u06cc\u0646 \u060c \u0645\u0624\u0644\u0641\u0647 \u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0627\u0632 ASYNC ABI \u062c\u062f\u06cc\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u0646\u062f \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0628\u0627 \u0633\u0627\u06cc\u0631 \u0627\u062c\u0632\u0627\u06cc \u0628\u062f\u0648\u0646 \u062e\u0637\u0631 \u0645\u0633\u062f\u0648\u062f \u0634\u062f\u0646 \u062a\u0634\u06a9\u06cc\u0644 \u0634\u0648\u0646\u062f \u0648\u0642\u062a\u06cc \u06cc\u06a9\u06cc \u0627\u0632 \u0627\u06cc\u0646 \u0645\u0624\u0644\u0641\u0647 \u0647\u0627 \u06cc\u06a9 \u062a\u0645\u0627\u0633 \u0647\u0645\u0632\u0645\u0627\u0646 \u0631\u0627 \u0628\u0631\u0642\u0631\u0627\u0631 \u0645\u06cc \u06a9\u0646\u062f. \u062f\u0631 \u0627\u06cc\u0646 \u062d\u0627\u0644\u062a \u060c \u0632\u0645\u0627\u0646 \u0627\u062c\u0631\u0627\u06cc \u0645\u06cc\u0632\u0628\u0627\u0646 \u0645\u062a\u0648\u062c\u0647 \u062a\u0645\u0627\u0633 \u0645\u0633\u062f\u0648\u062f \u0634\u062f\u0647 \u060c \u0648\u0638\u06cc\u0641\u0647 \u0627\u06cc \u0631\u0627 \u06a9\u0647 \u0633\u0627\u062e\u062a\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a \u0628\u0647 \u062d\u0627\u0644\u062a \u062a\u0639\u0644\u06cc\u0642 \u062f\u0631 \u0645\u06cc \u0622\u0648\u0631\u062f \u0648 \u0628\u0647 \u0645\u0624\u0644\u0641\u0647 \u0627\u0635\u0644\u06cc \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc \u062f\u0647\u062f \u062a\u0627 \u0628\u0647 \u0627\u062c\u0631\u0627\u06cc \u062e\u0648\u062f \u0627\u062f\u0627\u0645\u0647 \u062f\u0647\u062f.<\/p>\n<p>\u0628\u0627 \u062a\u0634\u06a9\u0631 \u0627\u0632 \u0627\u06cc\u0646 \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc \u062c\u062f\u06cc\u062f \u060c \u062a\u0639\u0627\u0631\u06cc\u0641 \u0627\u0646\u0648\u0627\u0639 \u0631\u0627\u0628\u0637 WebAssembly (WIT) \u0628\u0631\u0627\u06cc 0.3 \u062f\u0631 \u0645\u0642\u0627\u06cc\u0633\u0647 \u0628\u0627 \u0647\u0645\u062a\u0627\u06cc\u0627\u0646 0.2 \u0622\u0646\u0647\u0627 \u0628\u0647 \u0637\u0648\u0631 \u0642\u0627\u0628\u0644 \u062a\u0648\u062c\u0647\u06cc \u0633\u0627\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a. \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644 \u060c \u062f\u0631 \u062d\u0627\u0644\u06cc \u06a9\u0647 <code>wasi:http@0.2.4<\/code> \u0634\u0627\u0645\u0644 11 \u0646\u0648\u0639 \u0645\u0646\u0628\u0639 \u0645\u062c\u0632\u0627 \u060c <code>wasi:http@0.3.0-draft<\/code> \u0641\u0642\u0637 \u0628\u0647 5 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u062f. \u0628\u0647 \u0647\u0645\u06cc\u0646 \u062a\u0631\u062a\u06cc\u0628 \u060c \u0645\u0631\u0627\u0633\u0645 \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u0628\u0631\u0627\u06cc \u0627\u0646\u062c\u0627\u0645 \u06cc\u06a9 \u0639\u0645\u0644 \u0646\u0627\u0647\u0645\u0632\u0645\u0627\u0646 \u0628\u0627 WASIP2 &#8211; \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 <code>pollable<\/code>\u060c \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u0622\u0646 \u0628\u0647 \u06cc\u06a9 \u0644\u06cc\u0633\u062a \u0628\u0647 \u0647\u0645\u0631\u0627\u0647 \u0647\u0631 \u0686\u06cc\u0632 \u062f\u06cc\u06af\u0631\u06cc \u06a9\u0647 \u0642\u0635\u062f \u0627\u0646\u062a\u0638\u0627\u0631 \u0628\u0631\u0627\u06cc \u0627\u0646\u062a\u0638\u0627\u0631 \u062f\u0627\u0631\u06cc\u062f \u060c \u062a\u0645\u0627\u0633 \u0628\u06af\u06cc\u0631\u06cc\u062f <code>poll<\/code>\u060c \u0648 \u0627\u0639\u0632\u0627\u0645 \u0631\u0648\u06cc\u062f\u0627\u062f\u0647\u0627 \u06a9\u0647 \u0628\u0631\u0627\u0633\u0627\u0633 \u0622\u0646 <code>pollable<\/code>S \u0622\u0645\u0627\u062f\u0647 \u0627\u0633\u062a &#8211; \u0628\u0627 \u06cc\u06a9 \u062a\u0645\u0627\u0633 \u0648\u0627\u062d\u062f \u062c\u0627\u06cc\u06af\u0632\u06cc\u0646 \u0634\u062f\u0647 \u0627\u0633\u062a <code>async<\/code> \u062f\u0631 \u0632\u0628\u0627\u0646 \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc \u062e\u0648\u062f \u062f\u0631 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0627\u0631 \u06a9\u0646\u06cc\u062f.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D9%88%D8%B6%D8%B9%DB%8C%D8%AA_WASIP3\"><\/span>\n<p>  \u0648\u0636\u0639\u06cc\u062a WASIP3<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0645\u0634\u062e\u0635\u0627\u062a \u0645\u062f\u0644 \u06a9\u0627\u0645\u067e\u0648\u0646\u0646\u062a \u0634\u0627\u0645\u0644 \u0634\u0631\u062d \u06a9\u0627\u0645\u0644\u06cc \u0627\u0632 ASYNC ABI \u060c \u062c\u0631\u06cc\u0627\u0646 \u0647\u0627 \u060c \u0622\u06cc\u0646\u062f\u0647 \u0647\u0627 \u0648 \u062a\u0648\u0627\u0628\u0639 \u062f\u0627\u062e\u0644\u06cc \u0645\u0631\u062a\u0628\u0637 \u0627\u0633\u062a (\u0628\u0647 \u062f\u0646\u0628\u0627\u0644 \u0646\u0645\u0627\u062f \ud83d\udd00) \u0628\u0627\u0634\u06cc\u062f. \u062a\u0648\u062c\u0647 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f \u06a9\u0647 \u0628\u0627 \u06a9\u0633\u0628 \u062a\u062c\u0631\u0628\u0647 \u0627\u062c\u0631\u0627\u06cc \u0628\u06cc\u0634\u062a\u0631 \u060c \u0627\u06cc\u0646 \u0645\u0634\u062e\u0635\u0627\u062a \u0647\u0646\u0648\u0632 \u062a\u0635\u0641\u06cc\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a \u060c \u0627\u0645\u0627 \u0645\u0627 \u0627\u0646\u062a\u0638\u0627\u0631 \u0646\u062f\u0627\u0631\u06cc\u0645 \u06a9\u0647 \u0628\u06cc\u0646 \u0627\u06a9\u0646\u0648\u0646 \u0648 \u0627\u0646\u062a\u0634\u0627\u0631 WASIP3 \u062a\u063a\u06cc\u06cc\u0631 \u0627\u0633\u0627\u0633\u06cc \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f.<\/p>\n<p>\u067e\u06cc\u0634 \u0646\u0648\u06cc\u0633 0.3 \u0631\u0627\u0628\u0637 \u0628\u0631\u0627\u06cc \u0647\u0631 \u06cc\u06a9 \u0627\u0632 \u067e\u0631\u0648\u0698\u0647 \u0647\u0627\u06cc \u0627\u0635\u0644\u06cc WASI \u0646\u0648\u0634\u062a\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<p>\u0627\u062c\u0631\u0627\u06cc \u0639\u0627\u0642\u0644\u0627\u0646\u0647 \u060c \u062c\u062f\u06cc\u062f\u062a\u0631\u06cc\u0646 <code>wasm-tools<\/code> \u0627\u0646\u062a\u0634\u0627\u0631 \u0634\u0627\u0645\u0644 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u06a9\u0627\u0645\u0644 \u0628\u0631\u0627\u06cc \u062a\u062c\u0632\u06cc\u0647 \u060c \u0627\u0646\u062a\u0634\u0627\u0631 \u060c \u0686\u0627\u067e \u0648 \u063a\u06cc\u0631\u0647 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc \u062c\u062f\u06cc\u062f Async \u0627\u0633\u062a. \u0628\u0647 \u0647\u0645\u06cc\u0646 \u062a\u0631\u062a\u06cc\u0628 \u060c \u0622\u062e\u0631\u06cc\u0646 <code>wit-bindgen<\/code> \u0646\u0633\u062e\u0647 \u0647\u0627\u06cc \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0627\u0632 \u062a\u0648\u0644\u06cc\u062f \u0627\u062a\u0635\u0627\u0644\u0627\u062a \u0632\u0646\u06af \u0632\u062f\u06af\u06cc \u0627\u06cc\u062f\u06cc\u0648\u0645\u0627\u062a\u06cc\u06a9 \u06a9\u0647 \u0627\u0632 \u0622\u0646 \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u0646\u062f \u060c \u0628\u0627 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0627\u0632 \u0633\u0627\u06cc\u0631 \u0632\u0628\u0627\u0646\u0647\u0627 \u062f\u0631 \u0631\u0627\u0647 \u0627\u0633\u062a.<\/p>\n<p>\u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0627\u0632 \u0632\u0645\u0627\u0646 \u0627\u062c\u0631\u0627 \u0645\u06cc\u0632\u0628\u0627\u0646 \u0628\u0631\u0627\u06cc \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc \u062c\u062f\u06cc\u062f \u0645\u062f\u0644 \u0645\u0624\u0644\u0641\u0647 \u0648 WASIP3 \u062f\u0631 \u062d\u0627\u0644 \u062a\u0648\u0633\u0639\u0647 \u0627\u0633\u062a <code>wasip3-prototyping<\/code> repo \u0628\u0631\u0627\u06cc Wasmtime \u0648 \u062f\u0631 <code>jco<\/code> repo<\/p>\n<h2><span class=\"ez-toc-section\" id=\"wasi-http_%D9%86%D9%85%D9%88%D9%86%D9%87_%D8%B8%D8%B1%D9%88%D9%81_%D9%88%D8%B3%D8%B7\"><\/span>\n<p>  <code>wasi-http<\/code>  \u0646\u0645\u0648\u0646\u0647 \u0638\u0631\u0648\u0641 \u0648\u0633\u0637<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f \u0628\u0628\u06cc\u0646\u06cc\u0645 \u0627\u0632 WASIP3 \u0628\u0627 \u0646\u0648\u0634\u062a\u0646 \u06cc\u06a9 \u0633\u0627\u062f\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f <code>wasi:http<\/code> \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0646\u062a\u0631\u0644 \u062f\u0631 \u0632\u0646\u06af \u0632\u062f\u06af\u06cc \u060c \u0633\u067e\u0633 \u0622\u0646 \u0631\u0627 \u0628\u0627 \u06cc\u06a9 \u0645\u0624\u0644\u0641\u0647 \u0645\u06cc\u0627\u0646 \u0627\u0641\u0632\u0627\u0631 \u06a9\u0647 \u0634\u0641\u0627\u0641 \u0628\u062f\u0646\u0647 \u067e\u0627\u0633\u062e \u0631\u0627 \u0641\u0634\u0631\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f \u060c \u062a\u0647\u06cc\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0627\u0628\u062a\u062f\u0627 \u0686\u0646\u062f \u0627\u0628\u0632\u0627\u0631 \u0628\u0631\u0627\u06cc \u06a9\u0645\u06a9 \u0628\u0647 \u0645\u0627 \u062f\u0631 \u0633\u0627\u062e\u062a \u0648 \u0627\u062c\u0631\u0627\u06cc \u0642\u0637\u0639\u0627\u062a \u0646\u0635\u0628 \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f. \u0628\u0627 \u062a\u0648\u062c\u0647 \u0628\u0647 \u0627\u06cc\u0646\u06a9\u0647 \u06a9\u0627\u0631 \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc WASIP3 \u0627\u0632 \u0627\u06cc\u0646 \u0646\u0648\u0634\u062a\u0646 \u0647\u0646\u0648\u0632 \u062f\u0631 \u062d\u0627\u0644 \u0627\u0646\u062c\u0627\u0645 \u0627\u0633\u062a \u060c \u0645\u0627 \u0627\u0632 \u0646\u0633\u062e\u0647 \u0647\u0627\u06cc \u062e\u0627\u0635 \u0627\u06cc\u0646 \u0627\u0628\u0632\u0627\u0631\u0647\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f \u06a9\u0647 \u0634\u0646\u0627\u062e\u062a\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a \u06a9\u0647 \u0628\u0627 \u0647\u0645 \u06a9\u0627\u0631 \u0645\u06cc \u06a9\u0646\u0646\u062f. \u0646\u0633\u062e\u0647 \u0647\u0627\u06cc \u0628\u0639\u062f\u06cc \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u06a9\u0627\u0631 \u06a9\u0646\u0646\u062f \u060c \u0627\u0645\u0627 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0627\u0632 \u0639\u06a9\u0633 \u0641\u0648\u0631\u06cc \u0646\u0627\u0633\u0627\u0632\u06af\u0627\u0631 \u0627\u0632 \u0645\u0634\u062e\u0635\u0627\u062a \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u0646\u062f.<\/p>\n<p>\ud83d\udea7 \u062a\u0648\u062c\u0647 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f \u06a9\u0647 \u060c \u0627\u0632 \u0622\u0646\u062c\u0627 \u06a9\u0647 P3 \u06cc\u06a9 \u06a9\u0627\u0631 \u062f\u0631 \u062d\u0627\u0644 \u067e\u06cc\u0634\u0631\u0641\u062a \u0627\u0633\u062a \u060c \u0628\u062e\u0634 \u0627\u0639\u0638\u0645 \u0627\u0628\u0632\u0627\u0631 \u0648 \u0647\u0632\u06cc\u0646\u0647 \u0647\u0627\u06cc \u0627\u0631\u06af\u0648\u0646\u0648\u0645\u06cc\u06a9 \u0647\u0646\u0648\u0632 \u0648\u062c\u0648\u062f \u0646\u062f\u0627\u0631\u062f. \u0627\u06cc\u0646 \u0628\u062f\u0627\u0646 \u0645\u0639\u0646\u0627\u0633\u062a \u06a9\u0647 \u062f\u0631 \u062d\u0627\u0644 \u062d\u0627\u0636\u0631 \u06a9\u0627\u0631 \u0627\u0636\u0627\u0641\u06cc \u0648 \u062f\u06cc\u06af \u0628\u062e\u0627\u0631 \u0644\u0627\u0632\u0645 \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a \u0627\u062c\u0632\u0627\u06cc WASIP3 \u062f\u0631 \u0645\u0642\u0627\u06cc\u0633\u0647 \u0628\u0627 WASIP2 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f. \u062f\u0631 \u0627\u06cc\u0646 \u0645\u062b\u0627\u0644 \u060c \u0645\u0627 \u0627\u0632 \u0646\u0645\u0627\u062f \ud83d\udea7 \u0628\u0631\u0627\u06cc \u0627\u0634\u0627\u0631\u0647 \u0628\u0647 \u062f\u0627\u0631\u0628\u0633\u062a \u0627\u0636\u0627\u0641\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u0628\u0627 \u0646\u0632\u062f\u06cc\u06a9 \u0634\u062f\u0646 \u0628\u0647 \u06cc\u06a9 \u0646\u0633\u062e\u0647 \u063a\u06cc\u0631 \u0636\u0631\u0648\u0631\u06cc \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<p>\u062f\u0633\u062a\u0648\u0631\u0627\u062a \u0632\u06cc\u0631 \u06cc\u06a9 \u067e\u0648\u0633\u062a\u0647 \u0628\u0647 \u0633\u0628\u06a9 \u06cc\u0648\u0646\u06cc\u06a9\u0633 (\u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644 Linux \u060c MacOS \u06cc\u0627 WSL2) \u0628\u0627 \u0622\u0646 \u0641\u0631\u0636 \u0645\u06cc \u06a9\u0646\u0646\u062f <code>curl<\/code> \u0648\u062a <code>git<\/code> \u0646\u0635\u0628 \u0634\u062f\u0647 \u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u0632\u0646\u06af \u0632\u062f\u06af\u06cc \u0631\u0627 \u0646\u0635\u0628 \u0645\u06cc \u06a9\u0646\u0646\u062f \u060c <code>wasm-tools<\/code>\u060c \u06cc\u06a9 \u0686\u0646\u06af\u0627\u0644 \u0645\u0648\u0642\u062a \u0686\u0631\u062e\u0634 \u0628\u0627 <code>wasi:http@0.3.0-draft<\/code> \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u060c \u06a9\u067e\u06cc \u0627\u0632 \u067e\u0631\u0648\u0646\u062f\u0647 \u0647\u0627\u06cc \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 WIT \u06a9\u0647 \u0645\u0627 \u0628\u0631\u0627\u06cc \u062a\u0648\u0644\u06cc\u062f \u0627\u062a\u0635\u0627\u0644\u0627\u062a \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f \u0648 \u06cc\u06a9 \u0645\u0627\u0698\u0648\u0644 \u0622\u062f\u0627\u067e\u062a\u0648\u0631 \u06a9\u0647 \u0647\u0646\u06af\u0627\u0645 \u062a\u0648\u0644\u06cc\u062f \u0642\u0637\u0639\u0627\u062a \u0627\u0632 \u0622\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f.<\/p>\n<p>\ud83d\udea7 \u0628\u06cc\u0634\u062a\u0631 \u0627\u06cc\u0646 \u0645\u0631\u0627\u062d\u0644 \u06cc\u06a9 \u0628\u0627\u0631 \u063a\u06cc\u0631 \u0636\u0631\u0648\u0631\u06cc \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f <code>wasm32-wasip3<\/code> \u06cc\u06a9 \u0633\u06a9\u0648\u06cc \u0647\u062f\u0641 \u0632\u0646\u06af \u0632\u062f\u06af\u06cc Offical \u0648 <code>wasi<\/code> \u062c\u0639\u0628\u0647 \u0627\u0632 \u0622\u0646 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc \u06a9\u0646\u062f. \ud83d\udea7<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>curl --proto '=https' --tlsv1.2 -sSf https:\/\/sh.rustup.rs | sh\nrustup target install wasm32-wasip1\ncargo install --locked --version 1.227.1 wasm-tools\ncargo install --locked --git https:\/\/github.com\/dicej\/spin --branch wasi-http-p3-demo spin-cli\ngit clone https:\/\/github.com\/WebAssembly\/wasi-http -n &amp;&amp; (cd wasi-http &amp;&amp; git checkout 505ebdb9)\ncurl -OL https:\/\/github.com\/bytecodealliance\/wasmtime\/releases\/download\/v30.0.2\/wasi_snapshot_preview1.reactor.wasm\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0628\u0639\u062f \u060c \u0645\u0627 \u06cc\u06a9 &#8220;\u0633\u0644\u0627\u0645 \u060c \u062c\u0647\u0627\u0646&#8221; \u0645\u06cc \u0646\u0648\u06cc\u0633\u06cc\u0645 <code>wasi:http<\/code> \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0646\u0646\u062f\u0647 \u060c \u0627\u06cc\u062c\u0627\u062f \u0633\u0647 \u067e\u0631\u0648\u0646\u062f\u0647:<\/p>\n<ul>\n<li>\n<code>spin.toml<\/code>: \u067e\u0631\u0648\u0646\u062f\u0647 \u0645\u0627\u0646\u06cc\u0641\u0633\u062a \u06a9\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0686\u0631\u062e\u0634 \u0645\u0627 \u0631\u0627 \u062a\u0648\u0635\u06cc\u0641 \u0645\u06cc \u06a9\u0646\u062f:\n<\/li>\n<\/ul>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>spin_manifest_version = 2\n\napplication.name = \"hello\"\n\n[[trigger.http]]\nroute = \"\/...\"\ncomponent = \"hello\"\n\n[component.hello]\nsource = \"hello.wasm\"\n# \ud83d\udea7 The `wasm-tools component new` command will be unnecessary once Rust has\n# proper `wasm32-wasip3` support. \ud83d\udea7\nbuild.command = \"\"\"\ncargo build --manifest-path hello\/Cargo.toml --release --target wasm32-wasip1 \\\n  &amp;&amp; wasm-tools component new --skip-validation \\\n       hello\/target\/wasm32-wasip1\/release\/hello.wasm \\\n       -o hello.wasm --adapt wasi_snapshot_preview1.reactor.wasm\n\"\"\"\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<ul>\n<li>\n<code>hello\/Cargo.toml<\/code>: \u0641\u0627\u06cc\u0644 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u067e\u0631\u0648\u0698\u0647 \u0648 \u0648\u0627\u0628\u0633\u062a\u06af\u06cc \u0628\u0631\u0627\u06cc \u067e\u0631\u0648\u0698\u0647 Rust \u0645\u0627:\n<\/li>\n<\/ul>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>[package]\nname = \"hello\"\nversion = \"0.1.0\"\nedition = \"2021\"\n\n[lib]\ncrate-type = [\"cdylib\"]\n\n[dependencies.wit-bindgen]\ngit = \"https:\/\/github.com\/bytecodealliance\/wit-bindgen\"\nrev = \"d73c073b\"\n\n[dependencies.wit-bindgen-rt]\ngit = \"https:\/\/github.com\/bytecodealliance\/wit-bindgen\"\nrev = \"d73c073b\"\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><code>hello\/src\/lib.rs<\/code>: \u06a9\u062f \u0645\u0646\u0628\u0639 \u0628\u0631\u0627\u06cc \u0645\u0624\u0644\u0641\u0647 \u0645\u0627:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>\/\/ \ud83d\udea7 Once the `wasi` crate supports WASIp3, we'll be able to use its\n\/\/ pre-generated bindings rather then generate them on-the-fly with\n\/\/ `wit-bindgen` as we do here: \ud83d\udea7\nwit_bindgen::generate!({\n    path: \"..\/wasi-http\/wit-0.3.0-draft\",\n    world: \"wasi:http\/proxy\",\n    async: {\n        exports: [\n            \"wasi:http\/handler@0.3.0-draft#handle\",\n        ]\n    },\n    generate_all,\n});\n\nuse {\n    wasi::http::types::{Body, ErrorCode, Headers, Request, Response},\n    wit_bindgen_rt::async_support::{self, futures::SinkExt},\n};\n\nstruct Component;\nexport!(Component);\n\nimpl exports::wasi::http::handler::Guest for Component {\n    async fn handle(_request: Request) -&gt; Result<response errorcode=\"\"> {\n        let (mut tx, rx) = wit_stream::new();\n\n        async_support::spawn(async move {\n            _ = tx.send(b\"Hello, WASIp3!\".into()).await;\n        });\n\n        Ok(Response::new(Headers::new(), Some(Body::new(rx).0)))\n    }\n}\n<\/response><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0622\u0646 \u0631\u0627 \u0628\u0633\u0627\u0632\u06cc\u0645 \u0648 \u0622\u0646 \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u0645:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>spin build -u\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0633\u067e\u0633 \u060c \u062f\u0631 \u06cc\u06a9 \u062a\u0631\u0645\u06cc\u0646\u0627\u0644 \u062f\u06cc\u06af\u0631 \u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u06cc\u06a9 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0627\u0631\u0633\u0627\u0644 \u06a9\u0646\u06cc\u0645:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>curl -i localhost:3000\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06af\u0631 \u0647\u0645\u0647 \u062e\u0648\u0628 \u067e\u06cc\u0634 \u0631\u0641\u062a \u060c \u0628\u0627\u06cc\u062f \u0686\u06cc\u0632\u06cc \u0645\u0627\u0646\u0646\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>HTTP\/1.1 200 OK\ntransfer-encoding: chunked\ndate: Tue, 11 Mar 2025 16:38:58 GMT\n\nHello, WASIp3!\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062f\u0631 \u0645\u0631\u062d\u0644\u0647 \u0628\u0639\u062f \u060c \u0645\u0627 \u0645\u0624\u0644\u0641\u0647 \u062f\u06cc\u06af\u0631\u06cc \u0631\u0627 \u0645\u06cc \u0646\u0648\u06cc\u0633\u06cc\u0645 \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0628\u0627 \u0627\u0648\u0644\u06cc\u0646 \u0645\u0648\u0631\u062f \u0628\u0631\u0627\u06cc \u0627\u0641\u0632\u0648\u062f\u0646 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0627\u0632 \u0641\u0634\u0631\u062f\u0647 \u0633\u0627\u0632\u06cc \u0628\u062f\u0646 \u067e\u0627\u0633\u062e \u060c \u062a\u0634\u06a9\u06cc\u0644 \u062f\u0647\u06cc\u0645. \u0645\u0627 \u062f\u0648 \u067e\u0631\u0648\u0646\u062f\u0647 \u062c\u062f\u06cc\u062f \u0627\u06cc\u062c\u0627\u062f \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f:<\/p>\n<ul>\n<li>\n<code>middleware\/Cargo.toml<\/code>: \u0641\u0627\u06cc\u0644 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u067e\u0631\u0648\u0698\u0647 \u0648 \u0648\u0627\u0628\u0633\u062a\u06af\u06cc \u0628\u0631\u0627\u06cc \u067e\u0631\u0648\u0698\u0647 Rust \u0645\u0627:\n<\/li>\n<\/ul>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>[package]\nname = \"middleware\"\nversion = \"0.1.0\"\nedition = \"2021\"\n\n[lib]\ncrate-type = [\"cdylib\"]\n\n[dependencies.wit-bindgen]\ngit = \"https:\/\/github.com\/bytecodealliance\/wit-bindgen\"\nrev = \"d73c073b\"\n\n[dependencies.wit-bindgen-rt]\ngit = \"https:\/\/github.com\/bytecodealliance\/wit-bindgen\"\nrev = \"d73c073b\"\n\n[dependencies.flate2]\nversion = \"1.0.28\"\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<ul>\n<li>\n<code>middleware\/src\/lib.rs<\/code>: \u06a9\u062f \u0645\u0646\u0628\u0639 \u0628\u0631\u0627\u06cc \u0645\u0624\u0644\u0641\u0647 \u0645\u0627:\n<\/li>\n<\/ul>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>\/\/ \ud83d\udea7 Once the `wasi` crate supports WASIp3, we'll be able to use its\n\/\/ pre-generated bindings rather then generate them on-the-fly with\n\/\/ `wit-bindgen` as we do here: \ud83d\udea7\nwit_bindgen::generate!({\n    path: \"..\/wasi-http\/wit-0.3.0-draft\",\n    world: \"wasi:http\/proxy\",\n    async: {\n        imports: [\n            \"wasi:http\/handler@0.3.0-draft#handle\",\n        ],\n        exports: [\n            \"wasi:http\/handler@0.3.0-draft#handle\",\n        ]\n    },\n    generate_all,\n});\n\nuse {\n    flate2::{write::DeflateEncoder, Compression},\n    std::{io::Write, mem},\n    wasi::http::{\n        handler,\n        types::{Body, ErrorCode, Headers, Request, Response},\n    },\n    wit_bindgen_rt::async_support::{\n        self,\n        futures::{SinkExt, StreamExt},\n    },\n};\n\nstruct Component;\nexport!(Component);\n\nimpl exports::wasi::http::handler::Guest for Component {\n    \/\/\/ Forward the specified request to the imported `wasi:http\/handler`,\n    \/\/\/ encoding the response body if the client has provided an\n    \/\/\/ `accept-encoding: deflate` header.\n    async fn handle(request: Request) -&gt; Result<response errorcode=\"\"> {\n        \/\/ \ud83d\udea7 Since we're using the auto-generated bindings directly, the code\n        \/\/ below is a bit verbose.  We expect crates like\n        \/\/ [wstd](https:\/\/docs.rs\/wstd) will provide types, traits, and\n        \/\/ functions to help make code like this more concise. \ud83d\udea7\n\n        \/\/ First, extract the parts of the request and check for (and remove)\n        \/\/ the `accept-encoding` header.\n\n        let method = request.method();\n        let scheme = request.scheme();\n        let authority = request.authority();\n        let path_with_query = request.path_with_query();\n        let (headers, body) = Request::into_parts(request);\n        let mut headers = headers.entries();\n\n        let mut accept_deflated = false;\n        headers.retain(|(key, value)| {\n            if \"accept-encoding\" == key.as_str() {\n                accept_deflated |= std::str::from_utf8(&amp;value)\n                    .map(|v| v.contains(\"deflate\"))\n                    .unwrap_or(false);\n                false\n            } else {\n                true\n            }\n        });\n\n        \/\/ Synthesize a request from the parts collected above and pass it to\n        \/\/ the imported `wasi:http\/handler`.\n\n        let inner_request = Request::new(\n            Headers::from_list(&amp;headers).unwrap(),\n            body,\n            None\n        );\n        inner_request.set_method(&amp;method).unwrap();\n        inner_request.set_scheme(scheme.as_ref()).unwrap();\n        inner_request\n            .set_path_with_query(path_with_query.as_deref())\n            .unwrap();\n        inner_request.set_authority(authority.as_deref()).unwrap();\n\n        let response = handler::handle(inner_request).await?;\n\n        \/\/ Now that we have the response, extract the parts and optionally\n        \/\/ compress the body if applicable.\n\n        let status_code = response.status_code();\n        let (headers, body) = Response::into_parts(response);\n        let mut headers = headers.entries();\n        let body = if accept_deflated {\n            if let Some(body) = body {\n                \/\/ Remove the `content-length` header, if any, since we'll be\n                \/\/ using chunked encoding instead.\n                headers.retain(|(name, _value)| name != \"content-length\");\n                \/\/ Add a header to indicate the encoding.\n                headers.push((\"content-encoding\".into(), b\"deflate\".into()));\n\n                \/\/ Spawn a task to pipe and encode the original response body and\n                \/\/ trailers into a new response we'll create below.  This will run\n                \/\/ concurrently with the caller's code (i.e. it won't necessarily\n                \/\/ complete before we return a value).\n\n                let (mut pipe_tx, pipe_rx) = wit_stream::new();\n\n                async_support::spawn(async move {\n                    let mut body_rx = body.stream().unwrap().0;\n                    let mut encoder = DeflateEncoder::new(\n                        Vec::new(),\n                        Compression::fast()\n                    );\n                    while let Some(Ok(chunk)) = body_rx.next().await {\n                        encoder.write_all(&amp;chunk).unwrap();\n                        pipe_tx.send(mem::take(encoder.get_mut())).await.unwrap();\n                    }\n                    pipe_tx.send(encoder.finish().unwrap()).await.unwrap();\n                });\n\n                Some(Body::new(pipe_rx).0)\n            } else {\n                None\n            }\n        } else {\n            body\n        };\n\n        \/\/ While the above task (if any) is running, synthesize a response from\n        \/\/ the parts collected above and return it.\n\n        let response = Response::new(Headers::from_list(&amp;headers).unwrap(), body);\n        response.set_status_code(status_code).unwrap();\n\n        Ok(response)\n    }\n}\n<\/response><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0648 \u0633\u067e\u0633 \u0645\u0627 \u0648\u06cc\u0631\u0627\u06cc\u0634 \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f <code>spin.toml<\/code> \u067e\u0631\u0648\u0646\u062f\u0647 \u0627\u06cc \u06a9\u0647 \u0642\u0628\u0644\u0627\u064b \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u06cc\u0645 \u062a\u0627 \u0645\u0624\u0644\u0641\u0647 \u062c\u062f\u06cc\u062f \u062e\u0648\u062f \u0631\u0627 \u0628\u0633\u0627\u0632\u06cc\u0645 \u0648 \u0622\u0646 \u0631\u0627 \u0628\u0627 \u0646\u0633\u062e\u0647 \u0627\u0635\u0644\u06cc \u062a\u0647\u06cc\u0647 \u06a9\u0646\u06cc\u0645:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>spin_manifest_version = 2\n\napplication.name = \"hello\"\n\n[[trigger.http]]\nroute = \"\/...\"\ncomponent = \"hello\"\n\n[component.hello]\nsource = \"composed.wasm\"\n# \ud83d\udea7 The `wasm-tools component new` commands will be unnecessary once Rust has\n# proper `wasm32-wasip3` support. \ud83d\udea7\nbuild.command = \"\"\"\ncargo build --manifest-path hello\/Cargo.toml \\\n       --release --target wasm32-wasip1 \\\n  &amp;&amp; wasm-tools component new --skip-validation \\\n       hello\/target\/wasm32-wasip1\/release\/hello.wasm \\\n       -o hello.wasm --adapt wasi_snapshot_preview1.reactor.wasm \\\n  &amp;&amp; cargo build --manifest-path middleware\/Cargo.toml \\\n       --release --target wasm32-wasip1 \\\n  &amp;&amp; wasm-tools component new --skip-validation \\\n       middleware\/target\/wasm32-wasip1\/release\/middleware.wasm \\\n       -o middleware.wasm --adapt wasi_snapshot_preview1.reactor.wasm \\\n  &amp;&amp; wasm-tools compose --skip-validation middleware.wasm -d hello.wasm \\\n       -o composed.wasm\n\"\"\"\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u062a\u0631\u06a9\u06cc\u0628 \u0631\u0627 \u0628\u0633\u0627\u0632\u06cc\u0645 \u0648 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u0645:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>spin build -u\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0633\u067e\u0633 \u060c \u062f\u0631 \u06cc\u06a9 \u062a\u0631\u0645\u06cc\u0646\u0627\u0644 \u062f\u06cc\u06af\u0631 \u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u06cc\u06a9 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0627\u0631\u0633\u0627\u0644 \u06a9\u0646\u06cc\u0645:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>curl --compressed -i localhost:3000\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06af\u0631 \u0647\u0645\u0647 \u062e\u0648\u0628 \u067e\u06cc\u0634 \u0631\u0641\u062a \u060c \u0628\u0627\u06cc\u062f \u0686\u06cc\u0632\u06cc \u0645\u0627\u0646\u0646\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>HTTP\/1.1 200 OK\ncontent-encoding: deflate\ntransfer-encoding: chunked\ndate: Tue, 11 Mar 2025 16:52:13 GMT\n\nHello, WASIp3!\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062a\u0648\u062c\u0647 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f \u06a9\u0647 \u060c \u062f\u0631 \u062d\u0627\u0644\u06cc \u06a9\u0647 \u0645\u0627 \u0627\u0632 \u0632\u0646\u06af \u0632\u062f\u06af\u06cc \u0628\u0631\u0627\u06cc \u0646\u0648\u0634\u062a\u0646 \u0647\u0631 \u062f\u0648 \u0645\u0624\u0644\u0641\u0647 \u0641\u0648\u0642 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f\u06cc\u0645 \u060c \u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u0633\u062a\u06cc\u0645 \u0628\u0647 \u0631\u0627\u062d\u062a\u06cc \u06cc\u06a9\u06cc \u0627\u0632 \u0622\u0646\u0647\u0627 \u0631\u0627 \u062f\u0631 \u067e\u0627\u06cc\u062a\u0648\u0646 \u0648 \u062f\u06cc\u06af\u0631\u06cc \u062f\u0631 JavaScript \u0646\u06af\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u0645-\u0645\u062f\u0644 \u0645\u0624\u0644\u0641\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u062c\u062f\u062f \u0627\u0632 \u06a9\u062f \u0632\u0628\u0627\u0646-\u0622\u06af\u0646\u0648\u0633\u062a\u06cc\u06a9 \u0631\u0627 \u0627\u0645\u06a9\u0627\u0646 \u067e\u0630\u06cc\u0631 \u0645\u06cc \u06a9\u0646\u062f \u060c \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0628\u0647\u062a\u0631\u06cc\u0646 \u0627\u0628\u0632\u0627\u0631 \u0628\u0631\u0627\u06cc \u0647\u0631 \u0634\u063a\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f\u0647 \u0648 \u0628\u062f\u0648\u0646 \u062f\u0631 \u0646\u0638\u0631 \u06af\u0631\u0641\u062a\u0646 \u0632\u0628\u0627\u0646 \u0627\u062c\u0631\u0627\u06cc \u0622\u0646\u0647\u0627 \u0628\u0647 \u0631\u0627\u062d\u062a\u06cc \u0627\u0632 \u0627\u062c\u0632\u0627\u06cc \u0634\u062e\u0635 \u062b\u0627\u0644\u062b \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0639\u0644\u0627\u0648\u0647 \u0628\u0631 \u0627\u06cc\u0646 \u060c \u0627\u06af\u0631\u0686\u0647 \u0645\u0627 \u0627\u0632 \u0622\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f\u0647 \u0627\u06cc\u0645 <code>wasi:http<\/code> \u067e\u0631\u0648\u0646\u062f\u0647 \u0647\u0627\u06cc WIT \u0628\u0631\u0627\u06cc \u062a\u0639\u0631\u06cc\u0641 \u0631\u0627\u0628\u0637 \u0628\u06cc\u0646 \u0645\u0624\u0644\u0641\u0647 \u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0645\u0627 \u0633\u0627\u062e\u062a\u0647 \u0627\u06cc\u0645 \u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0628\u0647 \u0631\u0627\u062d\u062a\u06cc \u0641\u0627\u06cc\u0644 WIT \u0627\u062e\u062a\u0635\u0627\u0635\u06cc \u062e\u0648\u062f\u0645\u0627\u0646 \u060c \u062e\u0627\u0635 \u062f\u0627\u0645\u0646\u0647 \u062e\u0648\u062f \u0631\u0627 \u0646\u0648\u0634\u062a\u06cc\u0645 \u0648 \u0628\u0647 \u062c\u0627\u06cc \u0622\u0646 \u0627\u0632 \u0622\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f\u06cc\u0645. \u062f\u0631 \u0627\u06cc\u0646 \u062d\u0627\u0644\u062a \u060c \u0645\u0627 \u0647\u0645\u0647 \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627\u06cc \u0645\u062f\u0644 \u06cc\u06a9\u0633\u0627\u0646 \u0631\u0627 \u062f\u0631 \u0627\u062e\u062a\u06cc\u0627\u0631 \u0645\u0627 \u0642\u0631\u0627\u0631 \u0645\u06cc \u062f\u0647\u06cc\u0645:<\/p>\n<ul>\n<li>\u06cc\u06a9 \u0633\u06cc\u0633\u062a\u0645 \u0627\u0632 \u0646\u0648\u0639 \u063a\u0646\u06cc \u06a9\u0647 \u0627\u0632 \u0633\u0641\u0627\u0631\u0634\u06cc \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc \u06a9\u0646\u062f <code>record<\/code>\u0628\u0627 <code>variant<\/code>\u0648\u062a <code>resource<\/code> \u0627\u0646\u0648\u0627\u0639 \u0648 \u063a\u06cc\u0631\u0647<\/li>\n<li>\n<code>future<\/code>\u0648 <code>stream<\/code>S (\u0628\u0627 \u0627\u0646\u0648\u0627\u0639 \u0628\u0627\u0631 \u062e\u0648\u062f\u0633\u0631\u0627\u0646\u0647) \u06a9\u0647 \u0645\u062d\u0627\u0633\u0628\u0647 \u0645\u0639\u0648\u0642 \u0648 I\/O \u0631\u0627 \u0646\u0634\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f<\/li>\n<li>\u0648\u0627\u0631\u062f\u0627\u062a \u0648 \u0635\u0627\u062f\u0631\u0627\u062a \u0627\u062e\u062a\u06cc\u0627\u0631\u06cc \u0646\u0627\u0647\u0645\u0632\u0645\u0627\u0646<\/li>\n<li>\u062a\u0631\u06a9\u06cc\u0628 \u0632\u0628\u0627\u0646\u06cc<\/li>\n<li>\u062c\u0639\u0628\u0647 \u0645\u0627\u0633\u0647 \u0627\u06cc \u0627\u06cc\u0645\u0646<\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"%D9%85%D8%B1%D8%A7%D8%AD%D9%84_%D8%A8%D8%B9%D8%AF%DB%8C\"><\/span>\n<p>  \u0645\u0631\u0627\u062d\u0644 \u0628\u0639\u062f\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0627\u06af\u0631\u0686\u0647 WASIP3 \u0647\u0646\u0648\u0632 \u0645\u0646\u062a\u0634\u0631 \u0646\u0634\u062f\u0647 \u0627\u0633\u062a \u060c \u0648 \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0647\u0627 \u0647\u0646\u0648\u0632 \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062a\u0648\u0644\u06cc\u062f \u0622\u0645\u0627\u062f\u0647 \u0646\u06cc\u0633\u062a\u0646\u062f \u060c \u0627\u06a9\u0646\u0648\u0646 \u0632\u0645\u0627\u0646 \u0628\u0633\u06cc\u0627\u0631 \u062e\u0648\u0628\u06cc \u0628\u0631\u0627\u06cc \u0622\u0632\u0645\u0627\u06cc\u0634 \u0628\u0627 \u0622\u0646 \u0648 \u0627\u0631\u0627\u0626\u0647 \u0628\u0627\u0632\u062e\u0648\u0631\u062f \u0628\u0627 \u0628\u0627\u0632 \u06a9\u0631\u062f\u0646 \u0645\u0648\u0627\u0631\u062f \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 repo Spec \u06cc\u0627 repo WASIP3 \u0627\u0633\u062a. \u0627\u06cc\u0646 \u06a9\u0647 \u0622\u06cc\u0627 \u0634\u0645\u0627 \u062f\u0631 \u062d\u0627\u0644 \u062a\u0648\u0633\u0639\u0647 \u0627\u062c\u0632\u0627\u06cc WASM \u0647\u0633\u062a\u06cc\u062f \u06cc\u0627 \u062a\u0639\u0628\u06cc\u0647 \u0645\u06cc\u0632\u0628\u0627\u0646 \u0633\u0641\u0627\u0631\u0634\u06cc \u0628\u0631\u0627\u06cc \u0627\u062c\u0631\u0627\u06cc \u0645\u0624\u0644\u0641\u0647 \u0647\u0627 \u060c \u0645\u0627 \u062f\u0648\u0633\u062a \u062f\u0627\u0631\u06cc\u0645 \u0648\u0631\u0648\u062f\u06cc \u0634\u0645\u0627 \u0631\u0627 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u0645. \u0648 \u0627\u06af\u0631 \u0634\u0645\u0627 \u06cc\u06a9 \u0645\u062c\u0631\u06cc \u0632\u0628\u0627\u0646 \u0647\u0633\u062a\u06cc\u062f \u06a9\u0647 \u0628\u0647 \u062f\u0646\u0628\u0627\u0644 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0647\u0645\u0632\u0645\u0627\u0646\u06cc \u0628\u0631\u0627\u06cc \u0627\u0647\u062f\u0627\u0641 WASM \u0647\u0633\u062a\u06cc\u062f \u060c \u0645\u0627 \u0627\u0632 \u0648\u0631\u0648\u062f\u06cc \u0634\u0645\u0627 \u0646\u06cc\u0632 \u0642\u062f\u0631\u062f\u0627\u0646\u06cc \u0645\u06cc \u06a9\u0646\u06cc\u0645.<\/p>\n<p>\u0633\u0631\u0627\u0646\u062c\u0627\u0645 \u060c \u0627\u06af\u0631 \u0634\u0645\u0627 \u0639\u0644\u0627\u0642\u0647 \u0645\u0646\u062f \u0628\u0647 \u06a9\u0645\u06a9 \u0628\u0647 \u0645\u0627 \u062f\u0631 \u067e\u0627\u06cc\u0627\u0646 \u0648 \u06a9\u0634\u062a\u06cc WASIP3 \u0647\u0633\u062a\u06cc\u062f \u060c \u062f\u0631\u06cc\u063a \u0646\u06a9\u0646\u06cc\u062f \u06a9\u0647 \u062f\u0631 \u06a9\u0627\u0646\u0627\u0644 WASI ZULIP \u062f\u0633\u062a\u0631\u0633\u06cc \u067e\u06cc\u062f\u0627 \u06a9\u0646\u06cc\u062f \u0648 \u0627\u0632 \u0647\u06cc\u0626\u062a \u0645\u062f\u06cc\u0631\u0647 \u067e\u0631\u0648\u0698\u0647 \u062f\u06cc\u062f\u0646 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0628\u0628\u06cc\u0646\u06cc\u062f \u0686\u0647 \u06a9\u0627\u0631\u06cc \u0628\u0627\u06cc\u062f \u0627\u0646\u062c\u0627\u0645 \u0634\u0648\u062f.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%AA%D8%B5%D8%AF%DB%8C%D9%82\"><\/span>\n<p>  \u062a\u0635\u062f\u06cc\u0642<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0637\u0631\u0627\u062d\u06cc \u0648 \u0627\u062c\u0631\u0627\u06cc WASIP3 \u0627\u0632 \u0627\u0628\u062a\u062f\u0627 \u06cc\u06a9 \u062a\u0644\u0627\u0634 \u0645\u0634\u062a\u0631\u06a9 \u0628\u0648\u062f\u0647 \u0627\u0633\u062a. \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u062a\u0639\u062f\u0627\u062f\u06cc \u0627\u0632 \u0645\u0634\u0627\u0631\u06a9\u062a \u06a9\u0646\u0646\u062f\u06af\u0627\u0646 \u0642\u0627\u0628\u0644 \u062a\u0648\u062c\u0647 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f:<\/p>\n<ul>\n<li>\u0644\u0648\u06a9 \u0648\u0627\u06af\u0646\u0631 \u0628\u0627 \u0627\u0633\u062a\u062d\u06a9\u0627\u0645 (\u0637\u0631\u0627\u062d\u06cc \u060c \u0645\u0634\u062e\u0635\u0627\u062a \u0648 \u0627\u062c\u0631\u0627\u06cc \u0645\u0631\u062c\u0639 \u067e\u0627\u06cc\u062a\u0648\u0646)<\/li>\n<li>\u0628\u06cc\u0644\u06cc \u0647\u06cc\u0632 \u060c \u0631\u0648\u0645\u06cc \u0648\u0644\u0648\u0633\u0627\u062a\u0648\u06a9\u0633 \u060c \u0648 \u0648\u06cc\u06a9\u062a\u0648\u0631 AdossiCosmonic (\u0628\u0647 \u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u0647\u0627\u06cc \u0634\u0648\u062e \u0637\u0628\u0639\u06cc \u060c \u0627\u062c\u0631\u0627\u06cc \u0645\u06cc\u0632\u0628\u0627\u0646 WASIP3 \u060c \u0627\u062c\u0631\u0627\u06cc JCO \u060c \u062c\u0631\u06cc\u0627\u0646\/\u062e\u0637\u0627\u06cc \u0622\u06cc\u0646\u062f\u0647)<\/li>\n<li>Tomasz Andrzejak \u0648 Yoshua WuytsMicrosoft (\u0627\u062c\u0631\u0627\u06cc JCO \u060c \u06af\u0631\u0628\u0647 \u06af\u0631\u0628\u0647)<\/li>\n<li>\u0622\u0632\u0645\u0627\u06cc\u0634\u06af\u0627\u0647 \u0647\u0627\u06cc Calvin PrewittJaf (\u0627\u062c\u0631\u0627\u06cc JCO)<\/li>\n<li>\u0627\u0644\u06a9\u0633 \u06a9\u0631\u06cc\u0686\u062a\u0648\u0646 \u0648 \u062c\u0648\u0626\u0644 \u062f\u06cc\u0633\u0641\u0631 Fermyon (WASM-TOOLS \u060c WIT-BINDGEN \u0648 WASMTIME)<\/li>\n<\/ul><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u062a\u0648\u0633\u0637: Joel Dice \u067e\u06cc\u0634 \u0646\u0645\u0627\u06cc\u0634 \u0631\u0627\u0628\u0637 \u0633\u06cc\u0633\u062a\u0645 WebAssembly 3 (\u06cc\u0627 WASIP3 \u0628\u0631\u0627\u06cc \u06a9\u0648\u062a\u0627\u0647) \u0646\u0633\u062e\u0647 \u0627\u0635\u0644\u06cc \u0628\u0639\u062f\u06cc WASI \u0627\u0633\u062a \u060c \u0645\u062c\u0645\u0648\u0639\u0647 \u0627\u06cc \u0627\u0632 API \u0647\u0627\u06cc \u0631\u062f\u06cc\u0627\u0628\u06cc \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f \u0628\u0631\u0627\u06cc \u062a\u0648\u0633\u0639\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u0642\u0627\u0628\u0644 \u062d\u0645\u0644 \u0628\u0627 WebAnsembly. \u0627\u06cc\u0646 \u0646\u0633\u062e\u0647 \u0634\u0627\u0645\u0644 \u067e\u06cc\u0634\u0631\u0641\u062a \u0647\u0627\u06cc \u0642\u0627\u0628\u0644 \u062a\u0648\u062c\u0647\u06cc \u062f\u0631 \u0645\u062f\u0644 \u0645\u0624\u0644\u0641\u0647 \u0627\u0635\u0644\u06cc &#8211; \u0627\u0632 \u062c\u0645\u0644\u0647 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0628\u0631\u0627\u06cc \u06a9\u0644\u0627\u0633 \u0627\u0648\u0644 \u060c \u0647\u0645\u0632\u0645\u0627\u0646\u06cc \u0642\u0627\u0628\u0644 &hellip;<\/p>\n","protected":false},"author":2,"featured_media":101966,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-101965","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/101965","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/comments?post=101965"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/101965\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/101966"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=101965"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=101965"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=101965"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}