WebAssembly (WASM) הוא פורמט קוד בינארי נייד ברמה נמוכה שפועל בדפדפנים מודרניים, בדיוק כמו JavaScript. למעשה, WebAssembly ניתנת להפעלה הדדית עם JavaScript. אתה יכול להעביר את רוב קוד המקור של התוכנית אל WebAssembly ולהפעיל אותו בדפדפן עם או בלי JavaScript.
חלודה היא מהירה, מה שהופך את השפה לאפשרות ריאלית לבניית תוכניות WebAssembly. ישנן ספריות ומסגרות Rust רבות שיעזרו, עם תמיכה בכלים שבהם אתה משתמש לבניית אפליקציות אינטרנט.
1. ספריית השקמה
שִׁקמָה היא מסגרת תגובה מהירה, ארגונומית ואינטואיטיבית דמוית SolidJS. אתה יכול להשתמש בו כדי לבנות יישומי אינטרנט ב-Rust הממנפים את הכוח של WebAssembly. Sycamore מספקת את רוב הפונקציונליות שתזדקק לה כדי ליצור חזית יישום אינטרנט ב- Rust, כך שלא תצטרך לכתוב JavaScript.
Sycamore מספקת גם נתב ויכולת פעולה הדדית של JavaScript על Wasm-Bindgen באמצעות JS-sys או Web-Sys. הפרויקט מתכוון לשחרר בקרוב פונקציונליות בדיקות ו-CSS.
כדי להשתמש בשקמה, תזדקק לגרסה עדכנית של Rust - ה wasm32-unknown-unknown יַעַד. תזדקק גם ל-Trunk כדי לבנות ולאגד את האפליקציה שלך. מכיוון ששקמה היא חדשה, זה יהיה מסוכן להשתמש בספריית הסניף הראשית בייצור, למעט אם תפנה לגרסה מוקדמת יותר.
2. מסגרת הטקסוס
טקסוס היא מסגרת Rust לבניית אפליקציות אינטרנט חזיתיות עם ריבוי הליכי באמצעות WebAssembly. זה מאפשר לך לכתוב קוד Rust ולהעביר את קוד ה- Rust שלך ל-WASM, שיכול לפעול בכל מכשיר עם תמיכה ב-WASM. Yew פועלת הדדית עם JavaScript (תוכל להשתמש ב- חבילות npm), והמסגרת מספקת מאקרו לאינטראקציה עם רכיבי HTML עם Rust, כמו JSX ב-React.
אתה יכול להתחיל עם Yew באמצעות מאגד יישומי Trunk או WASMPack. עיין בתיעוד כיצד להתחיל, לקיים אינטראקציה עם HTML ו ממשקי API של DOM והעבר את קוד Rust שלך ל-WebAssembly.
פרויקט Yew פופולרי מאוד, עם למעלה מעשרים אלף כוכבים ב-Github וחמשת אלפים משתמשים. Yew יציב, אבל הפרויקט לא מוכן לייצור, ובסיס הקוד משתנה, כך שאתה עלול להיתקל בשגיאות ושברים.
3. ספריית פרסי
פרסי הוא אוסף של ספריות Rust לבניית אפליקציות אינטרנט חזיתיות המופעלות על ידי WebAssembly. פרסי תומך בעיבוד מיידי בצד השרת. הפרויקט מצטיין בבניית יישומי עמוד בודד (SPA) ידידותיים למנועי חיפוש.
פרסי מספק א html! מאקרו ליצירת DOMs וירטואליים. אתה יכול לעבד אותם לרכיבי DOM ב-frontend או להשתמש בהם עבור פעולות ב-backend של היישום שלך.
פרסי עדיין חדש מאוד, ולמרות שהספרייה לא מוכנה להפקה, הפרויקט פופולרי מאוד, עם למעלה מאלפיים כוכבים ב-Github.
4. מסגרת הזרע
זֶרַע הוא מסגרת הכוללת סוללות, מסגרת מלאת WebAssembly לבניית אפליקציות אינטרנט מהירים ב-Rust. מסגרת ה-Seed מספקת מערכת תבניות שמשתמשת בתחביר מאקרו במקום בתחביר דמוי JSX של Yew. יש לו גם מערכת ניהול מצב מובנית כדי לשפר את הפרודוקטיביות.
Seed הוא חדש, ורכיבים שנבנו מראש כמו קוטפי תמרים הם נדירים. למרות ש-Seed לא תומך כרגע בעיבוד בצד השרת, הפרויקט שואף לכלול אותו בקרוב. אחרת, Seed שלם עם תכונה, ואתה יכול לבנות איתו יישומי אינטרנט מוכנים לייצור. Seed משתמש גם בארכיטקטורת Elm עם תצורה מינימלית. אתה יכול לבנות ולאגד את היישומים שלך באמצעות Trunk, Web Bundler או Seeder.
אתה יכול גם להשתמש ב-Seed עבור הקצה האחורי של יישום האינטרנט שלך. Seed מספק פונקציונליות לבניית ממשקי API של REST או GraphQL עם תמיכה בניתוב ואימות ושילוב AuthO.
MoonZoon הוא מסגרת קלה לשימוש, ערימה מלאה, נתמכת ב-WebAssembly עבור יישומי קצה וקצה אחורי. אתה יכול לכתוב Rust מבלי לכתוב HTML, CSS ו-JavaScript ב-frontend או REST, GraphQL או SQL ב-backend. MoonZoon הוא מהיר, פשוט, ניתן להרחבה וידידותי לקידום אתרים. הוא מספק אפליקציית CLI לבניית אפליקציות אינטרנט שקלות לפריסה.
פילוסופיית פרויקט MoonZoon היא ליצור כלי פשוט מאוד ללא טרמינולוגיה מיוחדת, מחסומים מלאכותיים או דוגמה. באמצעותו תוכלו להתמקד בבניית יישומי אינטרנט כרצונכם. תצטרך להתקין את WASM-Pack כדי לבנות את הקצה הקדמי. הקצה האחורי של אפליקציית MoonZoon פועל על Actix-web ו-Warp, שתיהן מסגרות backend פופולריות של Rust. MoonZoon מספק גם פונקציונליות אימות.
התיעוד של MoonZoon אינו מתארח כרגע. כדי להשתמש בכלי, אתה יכול לבדוק את קבצי הסימון ב- מסמכים תיקיה דרך הפרויקט מאגר GitHub.
ייתכן שקיימת אינטראקציה עם WebAssembly
WebAssembly שוחרר לראשונה בשנת 2017, ו- World Wide Web Consortium (W3C) הפך את WebAssembly לתקן אינטרנט בשנת 2019. מאז 2019, חברות כמו Cloudflare, Google ו-Dropbox השתמשו בטכנולוגיה בייצור.
Google Earth משתמש ב-WebAssembly, Cloudflare משתמש בו עבור Cloudflare Workers, ו-Dropbox משתמש ב-WebAssembly עבור codec באתר האינטרנט שלה.