منصوبے کے بارے میں
Wasmer ایک WebAssembly پر مبنی رن ٹائم اور کمانڈ لائن ٹول ہے جو ایپلیکیشنز کو تیز، محفوظ اور ہلکے سینڈ باکسز کے اندر چلانے کے لیے استعمال ہوتا ہے۔ سینڈ باکسز مقامی طور پر، کلاؤڈ میں یا براؤزر میں چل سکتے ہیں، اور فائلوں، نیٹ ورک اور ماحول تک رسائی صارف کے کنٹرول میں ہوتی ہے۔
README میں بیان کردہ اہم خصوصیات:
- بطور ڈیفالٹ محفوظ: فائل، نیٹ ورک اور ماحول تک رسائی واضح طور پر کنٹرول کی جاتی ہے۔
- ہلکا پھلکا: تیز آغاز اور کم میموری استعمال۔
- چلانے کے لیے تیار: Python، JavaScript، Bash، PHP، PostgreSQL، SQLite اور FFmpeg جیسے پیکیجز Wasmer رجسٹری سے دستیاب ہیں۔
- ایمبیڈ کے قابل: Wasmer SDK کے ذریعے ایپلیکیشنز میں سینڈ باکسز شامل کیے جا سکتے ہیں۔
CLI کے ساتھ آغاز:
macOS یا Linux پر `curl https://get.wasmer.io -sSfL | sh` کے ذریعے انسٹال کریں؛ Windows پر PowerShell استعمال ہوتا ہے، اور Homebrew بھی معاون ہے۔ پہلا رن کچھ اس طرح ہوتا ہے: `wasmer run python/python -- -c "print('Hello from Wasmer')"`۔ پیکیجز ڈاؤن لوڈ ہو کر بعد کے رنز کے لیے کیش ہو جاتے ہیں۔ `--` جدا کنندہ Wasmer کے آپشنز کو پروگرام کے آرگیومنٹس سے الگ کرتا ہے؛ `--volume` مقامی ڈائریکٹری تک رسائی دیتا ہے اور `--net` ہوسٹ نیٹ ورکنگ فعال کرتا ہے۔ براؤزر پر مبنی آزمائش wasmer.sh پر بغیر انسٹالیشن دستیاب ہے۔
Wasmer SDK ڈویلپرز کو اپنی ایپلیکیشنز کے اندر سینڈ باکسز بنانے، ٹولز منتخب کرنے اور کوڈ چلانے کی سہولت دیتا ہے۔ یہ JavaScript/TypeScript (Node.js 20+)، Python (macOS اور Linux، Intel اور ARM64)، Rust (سورس ڈیپنڈنسی، crates.io پر اشاعت فی الحال غیر فعال) اور Swift (Swift 6+، macOS 12+، iOS 27+) کے لیے دستیاب ہے۔ براؤزر میں اجرا اسی JavaScript API کو cross-origin isolation ہیڈرز کے ساتھ استعمال کرتا ہے۔ SDK فی الحال الفا مرحلے میں ہے۔
SDK کی صلاحیتوں میں کمانڈز چلانا اور آؤٹ پٹ حاصل کرنا، اسٹریمڈ آؤٹ پٹ کے ساتھ پروسیسز کا انتظام، سینڈ باکس فائلیں پڑھنا اور لکھنا، ایک ہی سینڈ باکس میں زبانیں اور پیکیجز یکجا کرنا، اور واضح نیٹ ورک رسائی کے ساتھ سروسز چلانا شامل ہیں۔ مثال کے پیکیجز میں Python، Edge.js، Bash، PHP، PGlite، SQLite اور FFmpeg شامل ہیں۔
اس ریپوزٹری میں Wasmer رن ٹائم اور CLI موجود ہیں؛ سینڈ باکس SDKs ایک الگ ریپوزٹری میں ہیں۔ Rust اور C APIs کے ذریعے نچلی سطح پر ایمبیڈنگ ممکن ہے۔ یہ پروجیکٹ MIT لائسنس کے تحت ہے، تعاون قبول کرتا ہے، اور سورس سے بلڈ کرنے، ٹیسٹنگ، سیکیورٹی رپورٹنگ اور ایشو ٹریکنگ کے لیے دستاویزات فراہم کرتا ہے۔ کمیونٹی چینلز میں Discord، X، LinkedIn اور ایک بلاگ شامل ہیں، اور README کے کئی زبانوں میں کمیونٹی تراجم بھی دستیاب ہیں۔
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.