פונקציונליות חדשה למפתחים שנוצרה על ידי WebAssembly

תערוכה של כלים שזמינים עכשיו באינטרנט בזכות WebAssembly.

Thomas Nattestad
Thomas Nattestad

WebAssembly מאפשר למפתחים להוסיף לאינטרנט פונקציונליות חדשה עם ביצועים טובים משפות אחרות. בשנים האחרונות, מפתחים השתמשו באפשרויות האלה בצורה יעילה. בפוסט הזה נסקור רק כמה מהכלים החדשים והמתקדמים שתוכלו להפיק מהם תועלת, בין היתר בזכות WebAssembly.

כלים וספריות שאפשר להשתמש בהם כבר עכשיו

בלי להכביר במילים, נעבור לדברים הטובים :D

SQLite

הגרסה המלאה הזו של SQLite מאפשרת לכם להשתמש במערכת ניהול מסדי נתונים רלציוניים קלה ומוטמעת. מידע נוסף זמין בפוסט הזה בבלוג, שבו מוצג השקע המדהים הזה ומוסבר איך משתמשים בו.

FFmpeg.wasm

FFmpeg הוא פרויקט תוכנה חינמי בקוד פתוח שמורכב מחבילת ספריות ותוכנות לטיפול בקובצי וידאו, אודיו וקבצים וסטרימינג אחרים של מדיה. כאן (מאגר GitHub) אפשר למצוא גרסת wasm מתומצתת שמאפשרת לבצע את כל הפונקציות האלה ישירות בדפדפן.

תיאור אוניברסלי של סצנה (USD)

Universal Scene Description‏ (USD) הוא מסגרת לנתוני גרפיקה ממוחשבת תלת-ממדית שמתמקדת בשיתוף פעולה, בעריכה ללא השחתה ובאפשרות להציג כמה תצוגות ודעות לגבי נתוני הגרפיקה. זהו תקן תעשייתי שנתמך על ידי חברות כמו Pixar,‏ Autodesk,‏ Nvidia ועוד רבות. עדיין מוקדם לדבר על תמיכה באינטרנט, אבל Autodesk כבר פרסמה בקוד פתוח נגן USD מבוסס-אינטרנט, שאפשר למצוא כאן.

CanvasKit

CanvasKit הוא Skia, מנוע הרינדור של Chrome ו-Android, שמתורגם ישירות ל-WebAssembly. בעזרתו אפשר לקבל גישה פשוטה ל-JavaScript API לכל העוצמה של מנוע הרינדור של Skia. הפונקציונליות כוללת עיבוד מורכב, עיצוב טקסט, אנימציה, כתיבה בדיו ועוד. כדאי לעיין בחבילת ה-npm ובמדריך למתחילים.

TensorFlow.js

TensorFlow.js מביא את העוצמה של TensorFlow ישירות לדפדפן באמצעות ממשק API פשוט של JavaScript. מתחת לפני השטח, המערכת מבצעת אופטימיזציה של המודלים גם ב-GPU וגם ב-CPU (כולל אופטימיזציות של SIMD) כדי למקסם את הביצועים. אתם יכולים לעיין במדריך למתחילים או לצפות בחלק מהדמואים שלהם ישירות.

OpenCV

OpenCV הוא תקן תעשייתי של פונקציות תכנות, בעיקר לצורך עיבוד תמונה בזמן אמת. כאן יש חבילה נוחה לשימוש ב-npm, ולמשתמשי Emscripten יש גם הוראות מפורטות לביצוע build מלא. כדי לראות איך SIMD וחוטים משפרים את הביצועים של עומסי העבודה האלה, אפשר לצפות בקטע הזה מההרצאה בכנס Modern WebAssembly Chrome Dev Summit.

קוקוס

Cocos הוא מנוע משחקים חזק ופופולרי שמאפשר למפתחים ליצור משחקים עם תמיכה בפלטפורמות שונות, כולל עכשיו באינטרנט. הוא מצטרף לרשימה הארוכה של מנועי המשחקים שמאפשרים ייצוא לאינטרנט באמצעות wasm. כדי להתחיל, עוברים לעורך Cocos ופועלים לפי ההוראות האלה.

סיכום

בנוסף לדוגמאות הספציפיות האלה, יש הרבה סיבות להתלהב מהפוטנציאל של WebAssembly לשנות את הקצב של פונקציונליות חדשה באינטרנט. אפילו הקמנו ב-Chrome את הקרן לאפליקציות אינטרנט מתקדמות, שיכולה לעזור למפתחים לממן את העבודה שלהם כדי לשפר את הפונקציונליות של האינטרנט שזמינה לכל המפתחים.

התמונה הראשית (Hero) מ-Pexels, מאת Ann Marie Kennon.