منصوبے کے بارے میں

Wasmtime WebAssembly کے لیے ایک اسٹینڈ الون رن ٹائم ہے، جسے بائٹ کوڈ الائنس پروجیکٹ کے طور پر تیار کیا گیا ہے۔ اسے تیز، محفوظ، قابل ترتیب اور معیارات کے مطابق ڈیزائن کیا گیا ہے، اور اسے کمانڈ لائن ٹول کے طور پر اور دیگر ایپلیکیشنز میں ایمبیڈڈ رن ٹائم کے طور پر استعمال کیا جا سکتا ہے۔ انسٹالیشن CLI کو Linux اور macOS پر ایک شیل اسکرپٹ کے ساتھ انسٹال کیا جا سکتا ہے جو $WASMTIME_HOME (ڈیفالٹ $HOME/.wasmtime) میں انسٹال ہوتا ہے، اور ایگزیکیوٹیبل کو $WASMTIME_HOME/bin میں رکھتا ہے۔ ونڈوز صارفین اور دیگر GitHub Releases صفحہ سے انسٹالرز اور بائنریز ڈاؤن لوڈ کر سکتے ہیں۔ اضافی انسٹالیشن کے اختیارات آن لائن کتاب میں درج ہیں۔ مثال کے طور پر استعمال Rust کمپائلر انسٹال ہونے کے بعد، ایک Rust پروگرام کو wasm32-wasip2 ٹارگٹ کا استعمال کرتے ہوئے WebAssembly کمپوننٹ میں کمپائل کیا جا سکتا ہے، اور پھر wasmtime کمانڈ کے ساتھ چلایا جا سکتا ہے۔ README ایک ہیلو ورلڈ مثال دکھاتا ہے جو چلانے پر "Hello, world!" پرنٹ کرتا ہے۔ اہم خصوصیات - تیز: آپٹیمائزنگ Cranelift کوڈ جنریٹر پر بنایا گیا ہے، جو رن ٹائم پر یا وقت سے پہلے مشین کوڈ تیار کر سکتا ہے۔ اسے موثر انسٹینشیشن، ایمبیڈر اور wasm کے درمیان کم اوور ہیڈ کالز، اور ہم آہنگ انسٹینسز کی اسکیل ایبلٹی کے لیے آپٹیمائز کیا گیا ہے۔ - محفوظ: ترقی درستگی اور سیکیورٹی پر زور دیتی ہے، جو Rust کی رن ٹائم سیفٹی گارنٹیوں پر مبنی ہے۔ خصوصیات RFC عمل، Google کے OSS Fuzz کے ذریعے مسلسل فزنگ، ایک ریلیز پالیسی اور ایک متعین سیکیورٹی پالیسی سے گزرتی ہیں۔ یہ پروجیکٹ Spectre جیسے مسائل کے خلاف دفاع کو بھی مربوط کرتا ہے اور Wasmtime اور Cranelift کے اہم حصوں کی رسمی تصدیق پر تعلیمی محققین کے ساتھ تعاون کرتا ہے۔ - قابل ترتیب: معقول ڈیفالٹس فراہم کیے جاتے ہیں، لیکن کنفیگریشن CPU اور میموری کی کھپت پر باریک کنٹرول کی اجازت دیتی ہے، چھوٹے ماحول سے لے کر بہت سے ہم آہنگ انسٹینسز والے بڑے سرورز تک۔ - WASI: WASI معیار کے ذریعے میزبان ماحول کے ساتھ تعامل کے لیے APIs کا ایک بھرپور سیٹ سپورٹ کرتا ہے۔ - معیارات کے مطابق: سرکاری WebAssembly ٹیسٹ سوٹ پاس کرتا ہے، wasm کے سرکاری C API کو لاگو کرتا ہے، اور مستقبل کی WebAssembly تجاویز کو لاگو کرتا ہے۔ ڈویلپرز WebAssembly معیارات کے عمل میں شامل ہیں۔ زبان کی سپورٹ Wasmtime کو متعدد زبانوں سے ایمبیڈ کیا جا سکتا ہے۔ بائٹ کوڈ الائنس کے ذریعے سپورٹ کی جانے والی زبانوں میں Rust (wasmtime crate)، C (wasm.h، wasi.h اور wasmtime.h ہیڈرز، CMake کے ساتھ)، C++ (wasmtime.hh ہیڈر)، Python (wasmtime PyPI پیکیج)، .NET (Wasmtime NuGet پیکیج)، Go (wasmtime-go ریپوزٹری) اور Ruby (wasmtime gem) شامل ہیں۔ کمیونٹی کے ذریعے سپورٹ کی جانے والی زبانوں میں Elixir (wasmex hex پیکیج) اور Perl (Wasm Perl پیکیج میں Wasm::Wasmtime ماڈیول) شامل ہیں۔ دستاویزات Wasmtime گائیڈ یہ جاننے کے لیے تجویز کردہ ابتدائی نقطہ ہے کہ Wasmtime کیا کر سکتا ہے، سوالات کے جوابات دے سکتا ہے، اور پروجیکٹ میں حصہ ڈال سکتا ہے۔