نحوه استفاده از قدرت و سرعت WebAssembly را در برنامه های Rust خود کشف کنید.
WebAssembly (WASM) یک قالب کد باینری قابل حمل و سطح پایین است که بر روی مرورگرهای مدرن اجرا می شود، درست مانند جاوا اسکریپت. در واقع WebAssembly با جاوا اسکریپت نیز قابل همکاری است. شما می توانید اکثر کد منبع برنامه را به WebAssembly منتقل کنید و آن را با یا بدون جاوا اسکریپت در مرورگر اجرا کنید.
Rust سریع است و زبان را به گزینه ای مناسب برای ساخت برنامه های WebAssembly تبدیل می کند. کتابخانهها و چارچوبهای Rust زیادی با پشتیبانی از ابزارهایی که برای ساختن برنامههای وب استفاده میکنید، کمک میکنند.
1. کتابخانه سیکامور
Sycamore یک چارچوب واکنشی سریع، ارگونومیک و بصری شبیه SolidJS است. می توانید از آن برای ساخت برنامه های وب در Rust استفاده کنید که از قدرت WebAssembly استفاده می کنند. Sycamore بیشتر قابلیتهایی را که برای ایجاد یک برنامه وب در Rust به آن نیاز دارید، ارائه میکند، بنابراین نیازی به نوشتن جاوا اسکریپت نخواهید داشت.
Sycamore همچنین با استفاده از JS-sys یا Web-Sys قابلیت همکاری روتر و جاوا اسکریپت را روی Wasm-Bindgen فراهم می کند. این پروژه قصد دارد به زودی آزمایش و عملکرد CSS را منتشر کند.
برای استفاده از Sycamore، به نسخه اخیر Rust نیاز دارید – هدف wasm32-unknown-unknown. همچنین برای ساختن و بسته بندی اپلیکیشن خود به Trunk نیاز دارید. از آنجایی که Sycamore جدید است، استفاده از کتابخانه شعبه اصلی در تولید خطرناک خواهد بود، مگر اینکه به نسخه قبلی متوسل شوید.
2. چارچوب سرخدار
Yew یک فریمورک Rust برای ساخت برنامه های وب پیشانی چند رشته ای با استفاده از WebAssembly است. این به شما امکان می دهد کد Rust را بنویسید و کد Rust خود را به WASM انتقال دهید، که می تواند روی هر دستگاهی با پشتیبانی WASM اجرا شود. Yew با جاوا اسکریپت سازگار است (شما می توانید از بسته های npm خود استفاده کنید)، و فریم ورک یک ماکرو برای تعامل با عناصر HTML با Rust، مانند JSX در React، فراهم می کند.
میتوانید با Yew با استفاده از بستهکننده برنامه Trunk یا WASMPack شروع کنید. مستندات مربوط به نحوه شروع، تعامل با APIهای HTML و DOM و انتقال کد Rust خود به WebAssembly را بررسی کنید.
پروژه Yew با بیش از بیست هزار ستاره در Github و پنج هزار کاربر بسیار محبوب است. Yew پایدار است، اما پروژه آماده تولید نیست و پایه کد در حال تغییر است، بنابراین ممکن است با خطاها و خرابی ها مواجه شوید.
3. کتابخانه پرسی
Percy مجموعه ای از کتابخانه های Rust برای ساخت برنامه های وب ظاهری است که توسط WebAssembly طراحی شده است. Percy از رندر فوری سمت سرور پشتیبانی می کند. این پروژه در ساخت برنامه های کاربردی تک صفحه ای (SPA) سازگار با موتورهای جستجو عالی است.
پرسی یک html ارائه می دهد! ماکرو برای تولید DOM های مجازی. میتوانید اینها را به عناصر DOM در فرانتاند رندر کنید یا از آنها برای عملیات در باطن برنامه خود استفاده کنید.
پرسی هنوز بسیار جدید است و اگرچه کتابخانه آماده تولید نیست، این پروژه بسیار محبوب است و بیش از دو هزار ستاره در Github دارد.
4. چارچوب بذر
Seed یک چارچوب تمام پشته و مجهز به WebAssembly برای ساخت برنامه های وب سریع در Rust است. چارچوب Seed یک سیستم قالب ارائه میکند که از یک نحو کلان به جای نحو مشابه JSX Yew استفاده میکند. همچنین دارای سیستم مدیریت دولتی داخلی برای افزایش بهره وری است.
دانه جدید است و اجزای از پیش ساخته شده مانند خرماچین کمیاب هستند. اگرچه Seed در حال حاضر از رندر سمت سرور پشتیبانی نمی کند، این پروژه قصد دارد به زودی آن را شامل شود. در غیر این صورت، Seed دارای ویژگی های کامل است و می توانید با آن برنامه های وب آماده تولید بسازید. Seed همچنین از معماری Elm با حداقل پیکربندی استفاده می کند. می توانید برنامه های خود را با استفاده از Trunk، Web Bundler یا Seeder بسازید و بسته بندی کنید.
همچنین می توانید از Seed برای پشتیبان برنامه وب خود استفاده کنید. Seed عملکردی را برای ساخت REST یا GraphQL API با پشتیبانی از مسیریابی و احراز هویت و یکپارچه سازی AuthO ارائه می دهد.
5. جعبه ابزار MoonZoon
MoonZoon یک فریمورک با قابلیت استفاده آسان، تمام پشته و پشتیبانی شده از WebAssembly برای برنامه های کاربردی frontend و backend است. شما می توانید Rust را بدون نیاز به نوشتن HTML، CSS و جاوا اسکریپت در قسمت جلو یا REST، GraphQL یا SQL در قسمت پشتی بنویسید. MoonZoon سریع، ساده، مقیاس پذیر و سئو دوستانه است. این یک برنامه CLI برای ساخت برنامه های وب که به راحتی قابل استقرار هستند ارائه می دهد.
فلسفه پروژه MoonZoon ایجاد یک ابزار بسیار ساده بدون اصطلاحات خاص، موانع مصنوعی یا جزمات است. با استفاده از آن، می توانید بر روی ساخت برنامه های کاربردی وب به دلخواه تمرکز کنید. برای ساخت قسمت جلویی باید WASM-Pack را نصب کنید. بکاند یک برنامه MoonZoon روی Actix-web و Warp اجرا میشود که هر دو فریمورک محبوب Rust هستند. MoonZoon همچنین قابلیت احراز هویت را ارائه می دهد.
مستندات MoonZoon در حال حاضر میزبانی نمی شود. برای استفاده از این ابزار، میتوانید فایلهای علامتگذاری شده در پوشه docs را از طریق مخزن GitHub پروژه بررسی کنید.
ممکن است با WebAssembly تعامل داشته باشید
WebAssembly برای اولین بار در سال 2017 منتشر شد و کنسرسیوم جهانی وب (W3C) WebAssembly را به یک استاندارد وب در سال 2019 تبدیل کرد. از سال 2019، شرکت هایی مانند Cloudflare، Google و Dropbox از این فناوری در تولید استفاده کرده اند.
Google Earth از WebAssembly، Cloudflare از آن برای Cloudflare Workers و Dropbox از WebAssembly برای کدک در وب سایت خود استفاده می کند.