[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-wasi-0-3-nihayat-albad-albarid-wasm-janib-alkhadim-intaj":3},{"article":4,"author":55},{"id":5,"category_id":6,"title":7,"slug":8,"excerpt":9,"content_md":10,"content_html":11,"locale":12,"author_id":13,"published":14,"published_at":15,"meta_title":16,"meta_description":17,"focus_keyword":18,"og_image":19,"canonical_url":19,"robots_meta":20,"created_at":15,"updated_at":15,"tags":21,"category_name":24,"related_articles":35},"d0000000-0000-0000-0000-000000000663","a0000000-0000-0000-0000-000000000005","WASI 0.3 ونهاية البدء البارد: Wasm من جانب الخادم في الإنتاج","wasi-0-3-nihayat-albad-albarid-wasm-janib-alkhadim-intaj","صدر WASI 0.3 في فبراير 2026 مع async I\u002FO أصلي وأنواع stream ودعم كامل للمقابس. يوفر WebAssembly من جانب الخادم الآن بدءاً بارداً بالميكروثانية، وكل مزود سحابي رئيسي يقدم Wasm بدون خادم.","## WASI 0.3 وصل — وهذا يغير كل شيء\n\nصدر WebAssembly System Interface (WASI) 0.3 في فبراير 2026، وهو يسد الفجوة الأخيرة التي منعت Wasm من جانب الخادم من دخول أحمال العمل الإنتاجية السائدة. مع **async I\u002FO أصلي**، وأنواع stream من الدرجة الأولى، ودعم كامل لمقابس TCP\u002FUDP، يمكن لوحدات Wasm الآن القيام بكل ما يمكن للحاوية القيام به — بجزء بسيط من تكلفة البدء.\n\nإذا كنت قد رفضت Wasm على الخادم باعتباره لعبة، فهذا الإصدار هو إشارتك لإعادة النظر. أطلقت AWS وGoogle Cloud وAzure جميعها بيئات تشغيل Wasm بدون خادم في 2025-2026، وشركات مثل Fermyon وFastly وCloudflare تشغل Wasm في الإنتاج على نطاق واسع منذ أكثر من عامين.\n\n## ما الذي يقدمه WASI 0.3 فعلياً\n\nقدم WASI 0.2 (يناير 2024) Component Model وواجهات I\u002FO أساسية. يبني WASI 0.3 على هذا الأساس بثلاث إضافات حاسمة:\n\n### Async I\u002FO أصلي\n\nقدم WASI 0.2 فقط I\u002FO محجوب. إذا كانت وحدة Wasm تحتاج للتعامل مع اتصالات متعددة متزامنة، كنت عالقاً مع الخيوط أو حلقات الاستطلاع المرهقة. يقدم WASI 0.3 نموذجاً غير متزامن أصلياً يرتبط مباشرة بالأوليات غير المتزامنة على مستوى اللغة:\n\n- **Rust**: `async fn` مع `tokio` أو `async-std` يتم تجميعه أصلياً إلى WASI 0.3 غير متزامن\n- **Go**: تُعيَّن Goroutines إلى مهام WASI غير متزامنة\n- **Python**: حلقة أحداث `asyncio` تتكامل مع مجدول WASI\n- **JavaScript**: `Promise` و`async\u002Fawait` يعملان مباشرة عبر JCO\n\nتدير بيئة التشغيل (Wasmtime أو WasmEdge أو Spin) حلقة الأحداث. يكتب كودك غير متزامن اصطلاحي بأي لغة تختارها، وطبقة WASI تتعامل مع الباقي.\n\n```rust\n\u002F\u002F معالج HTTP غير متزامن بلغة Rust مجمع إلى WASI 0.3\nuse wasi::http::types::{IncomingRequest, ResponseOutparam};\n\nasync fn handle_request(req: IncomingRequest, resp: ResponseOutparam) {\n    \u002F\u002F قراءة جسم الطلب بشكل غير متزامن\n    let body = req.consume().await.unwrap();\n    let bytes = body.read_all().await.unwrap();\n    \n    \u002F\u002F إجراء استدعاء HTTP صادر (غير محجوب)\n    let api_response = wasi::http::outgoing_handler::handle(\n        build_api_request(&bytes)\n    ).await.unwrap();\n    \n    \u002F\u002F بث الاستجابة\n    let out = resp.set(200, &headers);\n    out.body().write_all(&api_response.body()).await.unwrap();\n}\n```\n\n### أنواع Stream\n\nيقدم WASI 0.3 `stream\u003CT>` و`future\u003CT>` كأنواع من الدرجة الأولى في نظام أنواع Component Model. هذا يعني أن المكونات يمكنها تمرير بيانات البث عبر حدود اللغات بدون تسلسل:\n\n```wit\n\u002F\u002F تعريف واجهة WIT مع أنواع stream\ninterface data-processor {\n    process: func(input: stream\u003Clist\u003Cu8>>) -> stream\u003Crecord>;\n    \n    record record {\n        id: u64,\n        payload: list\u003Cu8>,\n        timestamp: u64,\n    }\n}\n```\n\nهذا يتيح خطوط أنابيب بث حقيقية حيث يغذي محلل بيانات Rust نموذج ML بلغة Python الذي يغذي مسلسل Go — كلها تعمل في نفس العملية عبر تدفقات نسخ صفري.\n\n### دعم كامل للمقابس\n\nيوفر WASI 0.3 واجهات برمجة تطبيقات كاملة لمقابس TCP وUDP:\n\n- `tcp::listen` و`tcp::connect` لمقابس الخادم والعميل\n- `udp::bind` و`udp::send_to` \u002F `udp::recv_from` لبروتوكولات مخطط البيانات\n- إنهاء TLS عبر `wasi:sockets\u002Ftls`\n- تحليل DNS عبر `wasi:sockets\u002Fname-lookup`\n\n## Component Model: التكوين متعدد اللغات\n\nComponent Model، الذي استقر في WASI 0.2 وصُقل في 0.3، هو ما يجعل Wasm من جانب الخادم مختلفاً جوهرياً عن الحاويات. يسمح لك بتكوين مكونات Wasm متعددة — مكتوبة بلغات مختلفة — في تطبيق واحد:\n\n```\n+------------------+     +-------------------+     +------------------+\n| Auth Component   |---->| Business Logic    |---->| Data Layer       |\n| (Rust)           |     | (Python)          |     | (Go)             |\n+------------------+     +-------------------+     +------------------+\n        |                         |                         |\n    wasi:http                 wasi:keyvalue             wasi:sql\n    capability                capability                capability\n```\n\nكل مكون:\n- يعمل في صندوق رمل خاص به مع **أمان قائم على القدرات** (بدون سلطة محيطة)\n- يعلن عن واجهات النظام التي يحتاجها عبر WIT\n- يتواصل مع المكونات الأخرى عبر واجهات مكتوبة النوع، وليس JSON مسلسل\n- يمكن تحديثه بشكل مستقل بدون إعادة نشر التطبيق بالكامل\n\nFermyon Spin 3.0، الذي صدر في يناير 2026، يدعم التطبيقات متعددة المكونات في الإنتاج.\n\n## الأداء: بدء بارد بالميكروثانية مقابل ثوان الحاويات\n\n| المقياس | حاوية Docker | AWS Lambda | وحدة Wasm (Spin) | وحدة Wasm (Wasmtime) |\n|---------|-------------|------------|-------------------|---------------------|\n| البدء البارد | 500ms - 5s | 100ms - 2s | 0.5ms - 3ms | 0.3ms - 2ms |\n| الاستدعاء الدافئ | 1ms - 50ms | 1ms - 20ms | 0.1ms - 1ms | 0.05ms - 0.5ms |\n| بصمة الذاكرة | 50MB - 500MB | 128MB - 10GB | 1MB - 20MB | 1MB - 15MB |\n| حجم الملف الثنائي | 50MB - 2GB | N\u002FA (حزمة zip) | 1MB - 30MB | 1MB - 30MB |\n| تكلفة البدء | OS + وقت التشغيل + التطبيق | وقت التشغيل + التطبيق | إنشاء مثيل الوحدة | إنشاء مثيل الوحدة |\n| العزل | Linux namespaces + cgroups | Firecracker microVM | صندوق رمل Wasm | صندوق رمل Wasm |\n\nالفرق ليس تدريجياً — إنه **ثلاثة مراتب من الحجم**.\n\n### لماذا بهذه السرعة؟\n\nوحدات Wasm تتخطى تسلسل إقلاع نظام التشغيل بالكامل. لا تهيئة للنواة، لا تركيب لنظام الملفات، لا تحميل للمكتبات الديناميكية. قدم Wasmtime 19 (مارس 2026) **تخصيص المثيلات المجمعة** — يصبح إنشاء مثيل وحدة Wasm جديدة إزاحة مؤشر واحدة بالنانوثانية.\n\n## مشهد مزودي السحابة\n\n### AWS Lambda Wasm Runtime (GA ديسمبر 2025)\n\n- دعم WASI 0.3 عبر Wasmtime\n- بدء بارد دون الملي ثانية\n- دعم Component Model للوظائف متعددة اللغات\n- أرخص بنسبة 50% من Lambda الحاوية المكافئة\n\n### Google Cloud Run Wasm (GA فبراير 2026)\n\n- نشر مكونات `.wasm` مباشرة عبر `gcloud run deploy --wasm`\n- تحجيم تلقائي إلى الصفر مع بدء بارد بالميكروثانية\n- دعم gRPC وHTTP\u002F2 عبر مقابس WASI\n\n### Azure Container Apps Wasm (معاينة، GA الربع الثاني 2026)\n\n- أصلي لـ Kubernetes: أحمال Wasm تعمل بجانب الحاويات\n- Spin Operator يدير دورة حياة مكونات Wasm\n- تحجيم تلقائي قائم على KEDA\n\n## سير عمل تطوير Rust + Wasm\n\n```bash\n# تثبيت هدف WASI\nrustup target add wasm32-wasip2\n\n# إنشاء مشروع جديد\ncargo init --name my-service\n\n# إضافة تبعيات WASI\ncargo add wit-bindgen\ncargo add wasi --features \"http,keyvalue,sql\"\n\n# بناء مكون Wasm\ncargo build --target wasm32-wasip2 --release\n\n# تشغيل محلياً مع Wasmtime\nwasmtime serve target\u002Fwasm32-wasip2\u002Frelease\u002Fmy_service.wasm\n```\n\n## الحاويات مقابل وحدات Wasm: مقارنة كاملة\n\n| البعد | حاويات (Docker\u002FOCI) | وحدات Wasm (WASI 0.3) |\n|-------|---------------------|------------------------|\n| البدء البارد | 500ms - 5s | 0.3ms - 3ms |\n| تكلفة الذاكرة | 50MB - 500MB أساسي | 1MB - 20MB أساسي |\n| حجم الملف الثنائي | 50MB - 2GB صور | 1MB - 30MB مكونات |\n| نموذج العزل | Linux namespaces + cgroups | صندوق رمل Wasm (آمن للذاكرة بالتصميم) |\n| دعم اللغات | جميعها (ثنائيات أصلية) | Rust, Go, Python, JS, C\u002FC++, C#, Kotlin |\n| الشبكة | مكدس شبكة OS كامل | مقابس WASI (TCP, UDP, TLS) |\n| نظام الملفات | نظام ملفات POSIX كامل | FS افتراضي قائم على القدرات |\n| الوصول إلى GPU | NVIDIA Container Toolkit | تجريبي (wasi-nn) |\n| نضج النظام البيئي | 12+ سنة، نظام بيئي ضخم | 3 سنوات، نمو سريع |\n| التنسيق | Kubernetes, ECS, Nomad | SpinKube, wasmCloud, Kubernetes (عبر shim) |\n\n### متى تستخدم Wasm\n\n- **الوظائف بدون خادم** — عندما تكون زمن انتقال البدء البارد مهمة\n- **الحوسبة الطرفية** — عندما يكون حجم الملف الثنائي والذاكرة مقيدين\n- **أنظمة الإضافات** — عندما تحتاج لتنفيذ آمن لكود طرف ثالث\n- **المنصات متعددة المستأجرين** — عندما تكون كثافة العزل مهمة\n\n### متى تبقى مع الحاويات\n\n- **أحمال GPU** (تدريب\u002Fاستدلال ML) — دعم GPU في WASI لا يزال تجريبياً\n- **التطبيقات القديمة** المعتمدة على ميزات OS محددة\n- **الخدمات ذات الحالة** التي تحتاج تخزيناً محلياً دائماً\n\n## دراسات حالة إنتاجية\n\n### Shopify: تجارة على الحافة\n\nنقلت Shopify عرض واجهات متاجرها إلى Wasm على الحافة في 2025، معالجة **2.3 مليون طلب في الثانية** عبر Cloudflare Workers. النتيجة: **تخفيض 68% في TTFB** للعملاء العالميين.\n\n### Midokura (Sony): بوابة IoT\n\nتستخدم شركة Sony التابعة Midokura Wasm لتشغيل معالجات بروتوكولات الأجهزة على بوابات IoT بذاكرة 256MB. مع Wasm، يشغلون **40 معالج بروتوكول** في مساحة الذاكرة التي كانت تدعم 4 حاويات فقط.\n\n### منصة Fermyon: SaaS متعدد المستأجرين\n\nتشغل منصة Fermyon السحابية أحمال العملاء كمكونات Wasm مع **12,000 مثيل لكل عقدة**. بدء بارد متوسط **0.8ms**، وتكلفة لكل طلب أقل بـ 10 مرات من وظائف Lambda المكافئة.\n\n## نموذج الأمان\n\n- **الرفض افتراضياً** — وحدة Wasm لا يمكنها الوصول إلى أي شيء ما لم يمنح المضيف القدرات صراحة\n- **أمان الذاكرة** — الذاكرة الخطية تمنع تجاوزات المخزن المؤقت من الهروب من صندوق الرمل\n- **بدون سلطة محيطة** — على عكس الحاويات، يجب منح كل قدرة بشكل فردي\n- **التحقق الرسمي** — مواصفات Wasm بسيطة بما يكفي لأدوات التحقق الرسمي\n\n## الأسئلة الشائعة\n\n### هل WASI 0.3 جاهز للإنتاج؟\n\nنعم. WASI 0.3 هو أول إصدار تعتبره Bytecode Alliance جاهزاً للإنتاج لأحمال الخادم.\n\n### هل يمكن لـ Wasm استبدال Kubernetes؟\n\nليس بالكامل. يستبدل Wasm وقت تشغيل الحاوية للأحمال المناسبة، لكن التنسيق لا يزال ضرورياً.\n\n### ماذا عن برامج تشغيل قواعد البيانات؟\n\nدعم المقابس الكامل في WASI 0.3 يعني أن برامج تشغيل قواعد البيانات الأصلية تعمل. واجهة `wasi:sql` توفر API SQL موحدة.\n\n### كيف يتعامل WASI 0.3 مع الحالة؟\n\nوحدات Wasm بدون حالة افتراضياً. للحالة، استخدم `wasi:keyvalue` أو `wasi:sql` أو خدمات خارجية عبر مقابس WASI.\n\n### ما هو منحنى التعلم لـ Rust + Wasm؟\n\nإذا كنت تعرف Rust بالفعل، فالتعلم الإضافي ضئيل. إذا كان Rust جديداً عليك، توقع 2-4 أسابيع للوصول إلى الإنتاجية.","\u003Ch2 id=\"wasi-0-3\">WASI 0.3 وصل — وهذا يغير كل شيء\u003C\u002Fh2>\n\u003Cp>صدر WebAssembly System Interface (WASI) 0.3 في فبراير 2026، وهو يسد الفجوة الأخيرة التي منعت Wasm من جانب الخادم من دخول أحمال العمل الإنتاجية السائدة. مع \u003Cstrong>async I\u002FO أصلي\u003C\u002Fstrong>، وأنواع stream من الدرجة الأولى، ودعم كامل لمقابس TCP\u002FUDP، يمكن لوحدات Wasm الآن القيام بكل ما يمكن للحاوية القيام به — بجزء بسيط من تكلفة البدء.\u003C\u002Fp>\n\u003Cp>إذا كنت قد رفضت Wasm على الخادم باعتباره لعبة، فهذا الإصدار هو إشارتك لإعادة النظر. أطلقت AWS وGoogle Cloud وAzure جميعها بيئات تشغيل Wasm بدون خادم في 2025-2026، وشركات مثل Fermyon وFastly وCloudflare تشغل Wasm في الإنتاج على نطاق واسع منذ أكثر من عامين.\u003C\u002Fp>\n\u003Ch2 id=\"wasi-0-3\">ما الذي يقدمه WASI 0.3 فعلياً\u003C\u002Fh2>\n\u003Cp>قدم WASI 0.2 (يناير 2024) Component Model وواجهات I\u002FO أساسية. يبني WASI 0.3 على هذا الأساس بثلاث إضافات حاسمة:\u003C\u002Fp>\n\u003Ch3>Async I\u002FO أصلي\u003C\u002Fh3>\n\u003Cp>قدم WASI 0.2 فقط I\u002FO محجوب. إذا كانت وحدة Wasm تحتاج للتعامل مع اتصالات متعددة متزامنة، كنت عالقاً مع الخيوط أو حلقات الاستطلاع المرهقة. يقدم WASI 0.3 نموذجاً غير متزامن أصلياً يرتبط مباشرة بالأوليات غير المتزامنة على مستوى اللغة:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Rust\u003C\u002Fstrong>: \u003Ccode>async fn\u003C\u002Fcode> مع \u003Ccode>tokio\u003C\u002Fcode> أو \u003Ccode>async-std\u003C\u002Fcode> يتم تجميعه أصلياً إلى WASI 0.3 غير متزامن\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Go\u003C\u002Fstrong>: تُعيَّن Goroutines إلى مهام WASI غير متزامنة\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Python\u003C\u002Fstrong>: حلقة أحداث \u003Ccode>asyncio\u003C\u002Fcode> تتكامل مع مجدول WASI\u003C\u002Fli>\n\u003Cli>\u003Cstrong>JavaScript\u003C\u002Fstrong>: \u003Ccode>Promise\u003C\u002Fcode> و\u003Ccode>async\u002Fawait\u003C\u002Fcode> يعملان مباشرة عبر JCO\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>تدير بيئة التشغيل (Wasmtime أو WasmEdge أو Spin) حلقة الأحداث. يكتب كودك غير متزامن اصطلاحي بأي لغة تختارها، وطبقة WASI تتعامل مع الباقي.\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-rust\">\u002F\u002F معالج HTTP غير متزامن بلغة Rust مجمع إلى WASI 0.3\nuse wasi::http::types::{IncomingRequest, ResponseOutparam};\n\nasync fn handle_request(req: IncomingRequest, resp: ResponseOutparam) {\n    \u002F\u002F قراءة جسم الطلب بشكل غير متزامن\n    let body = req.consume().await.unwrap();\n    let bytes = body.read_all().await.unwrap();\n    \n    \u002F\u002F إجراء استدعاء HTTP صادر (غير محجوب)\n    let api_response = wasi::http::outgoing_handler::handle(\n        build_api_request(&amp;bytes)\n    ).await.unwrap();\n    \n    \u002F\u002F بث الاستجابة\n    let out = resp.set(200, &amp;headers);\n    out.body().write_all(&amp;api_response.body()).await.unwrap();\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>أنواع Stream\u003C\u002Fh3>\n\u003Cp>يقدم WASI 0.3 \u003Ccode>stream&lt;T&gt;\u003C\u002Fcode> و\u003Ccode>future&lt;T&gt;\u003C\u002Fcode> كأنواع من الدرجة الأولى في نظام أنواع Component Model. هذا يعني أن المكونات يمكنها تمرير بيانات البث عبر حدود اللغات بدون تسلسل:\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-wit\">\u002F\u002F تعريف واجهة WIT مع أنواع stream\ninterface data-processor {\n    process: func(input: stream&lt;list&lt;u8&gt;&gt;) -&gt; stream&lt;record&gt;;\n    \n    record record {\n        id: u64,\n        payload: list&lt;u8&gt;,\n        timestamp: u64,\n    }\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>هذا يتيح خطوط أنابيب بث حقيقية حيث يغذي محلل بيانات Rust نموذج ML بلغة Python الذي يغذي مسلسل Go — كلها تعمل في نفس العملية عبر تدفقات نسخ صفري.\u003C\u002Fp>\n\u003Ch3>دعم كامل للمقابس\u003C\u002Fh3>\n\u003Cp>يوفر WASI 0.3 واجهات برمجة تطبيقات كاملة لمقابس TCP وUDP:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>tcp::listen\u003C\u002Fcode> و\u003Ccode>tcp::connect\u003C\u002Fcode> لمقابس الخادم والعميل\u003C\u002Fli>\n\u003Cli>\u003Ccode>udp::bind\u003C\u002Fcode> و\u003Ccode>udp::send_to\u003C\u002Fcode> \u002F \u003Ccode>udp::recv_from\u003C\u002Fcode> لبروتوكولات مخطط البيانات\u003C\u002Fli>\n\u003Cli>إنهاء TLS عبر \u003Ccode>wasi:sockets\u002Ftls\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>تحليل DNS عبر \u003Ccode>wasi:sockets\u002Fname-lookup\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2 id=\"component-model\">Component Model: التكوين متعدد اللغات\u003C\u002Fh2>\n\u003Cp>Component Model، الذي استقر في WASI 0.2 وصُقل في 0.3، هو ما يجعل Wasm من جانب الخادم مختلفاً جوهرياً عن الحاويات. يسمح لك بتكوين مكونات Wasm متعددة — مكتوبة بلغات مختلفة — في تطبيق واحد:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>+------------------+     +-------------------+     +------------------+\n| Auth Component   |----&gt;| Business Logic    |----&gt;| Data Layer       |\n| (Rust)           |     | (Python)          |     | (Go)             |\n+------------------+     +-------------------+     +------------------+\n        |                         |                         |\n    wasi:http                 wasi:keyvalue             wasi:sql\n    capability                capability                capability\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>كل مكون:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>يعمل في صندوق رمل خاص به مع \u003Cstrong>أمان قائم على القدرات\u003C\u002Fstrong> (بدون سلطة محيطة)\u003C\u002Fli>\n\u003Cli>يعلن عن واجهات النظام التي يحتاجها عبر WIT\u003C\u002Fli>\n\u003Cli>يتواصل مع المكونات الأخرى عبر واجهات مكتوبة النوع، وليس JSON مسلسل\u003C\u002Fli>\n\u003Cli>يمكن تحديثه بشكل مستقل بدون إعادة نشر التطبيق بالكامل\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Fermyon Spin 3.0، الذي صدر في يناير 2026، يدعم التطبيقات متعددة المكونات في الإنتاج.\u003C\u002Fp>\n\u003Ch2 id=\"\">الأداء: بدء بارد بالميكروثانية مقابل ثوان الحاويات\u003C\u002Fh2>\n\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>المقياس\u003C\u002Fth>\u003Cth>حاوية Docker\u003C\u002Fth>\u003Cth>AWS Lambda\u003C\u002Fth>\u003Cth>وحدة Wasm (Spin)\u003C\u002Fth>\u003Cth>وحدة Wasm (Wasmtime)\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\n\u003Ctr>\u003Ctd>البدء البارد\u003C\u002Ftd>\u003Ctd>500ms - 5s\u003C\u002Ftd>\u003Ctd>100ms - 2s\u003C\u002Ftd>\u003Ctd>0.5ms - 3ms\u003C\u002Ftd>\u003Ctd>0.3ms - 2ms\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>الاستدعاء الدافئ\u003C\u002Ftd>\u003Ctd>1ms - 50ms\u003C\u002Ftd>\u003Ctd>1ms - 20ms\u003C\u002Ftd>\u003Ctd>0.1ms - 1ms\u003C\u002Ftd>\u003Ctd>0.05ms - 0.5ms\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>بصمة الذاكرة\u003C\u002Ftd>\u003Ctd>50MB - 500MB\u003C\u002Ftd>\u003Ctd>128MB - 10GB\u003C\u002Ftd>\u003Ctd>1MB - 20MB\u003C\u002Ftd>\u003Ctd>1MB - 15MB\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>حجم الملف الثنائي\u003C\u002Ftd>\u003Ctd>50MB - 2GB\u003C\u002Ftd>\u003Ctd>N\u002FA (حزمة zip)\u003C\u002Ftd>\u003Ctd>1MB - 30MB\u003C\u002Ftd>\u003Ctd>1MB - 30MB\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>تكلفة البدء\u003C\u002Ftd>\u003Ctd>OS + وقت التشغيل + التطبيق\u003C\u002Ftd>\u003Ctd>وقت التشغيل + التطبيق\u003C\u002Ftd>\u003Ctd>إنشاء مثيل الوحدة\u003C\u002Ftd>\u003Ctd>إنشاء مثيل الوحدة\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>العزل\u003C\u002Ftd>\u003Ctd>Linux namespaces + cgroups\u003C\u002Ftd>\u003Ctd>Firecracker microVM\u003C\u002Ftd>\u003Ctd>صندوق رمل Wasm\u003C\u002Ftd>\u003Ctd>صندوق رمل Wasm\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\n\u003Cp>الفرق ليس تدريجياً — إنه \u003Cstrong>ثلاثة مراتب من الحجم\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003Ch3>لماذا بهذه السرعة؟\u003C\u002Fh3>\n\u003Cp>وحدات Wasm تتخطى تسلسل إقلاع نظام التشغيل بالكامل. لا تهيئة للنواة، لا تركيب لنظام الملفات، لا تحميل للمكتبات الديناميكية. قدم Wasmtime 19 (مارس 2026) \u003Cstrong>تخصيص المثيلات المجمعة\u003C\u002Fstrong> — يصبح إنشاء مثيل وحدة Wasm جديدة إزاحة مؤشر واحدة بالنانوثانية.\u003C\u002Fp>\n\u003Ch2 id=\"\">مشهد مزودي السحابة\u003C\u002Fh2>\n\u003Ch3>AWS Lambda Wasm Runtime (GA ديسمبر 2025)\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>دعم WASI 0.3 عبر Wasmtime\u003C\u002Fli>\n\u003Cli>بدء بارد دون الملي ثانية\u003C\u002Fli>\n\u003Cli>دعم Component Model للوظائف متعددة اللغات\u003C\u002Fli>\n\u003Cli>أرخص بنسبة 50% من Lambda الحاوية المكافئة\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Google Cloud Run Wasm (GA فبراير 2026)\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>نشر مكونات \u003Ccode>.wasm\u003C\u002Fcode> مباشرة عبر \u003Ccode>gcloud run deploy --wasm\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>تحجيم تلقائي إلى الصفر مع بدء بارد بالميكروثانية\u003C\u002Fli>\n\u003Cli>دعم gRPC وHTTP\u002F2 عبر مقابس WASI\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Azure Container Apps Wasm (معاينة، GA الربع الثاني 2026)\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>أصلي لـ Kubernetes: أحمال Wasm تعمل بجانب الحاويات\u003C\u002Fli>\n\u003Cli>Spin Operator يدير دورة حياة مكونات Wasm\u003C\u002Fli>\n\u003Cli>تحجيم تلقائي قائم على KEDA\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2 id=\"rust-wasm\">سير عمل تطوير Rust + Wasm\u003C\u002Fh2>\n\u003Cpre>\u003Ccode class=\"language-bash\"># تثبيت هدف WASI\nrustup target add wasm32-wasip2\n\n# إنشاء مشروع جديد\ncargo init --name my-service\n\n# إضافة تبعيات WASI\ncargo add wit-bindgen\ncargo add wasi --features \"http,keyvalue,sql\"\n\n# بناء مكون Wasm\ncargo build --target wasm32-wasip2 --release\n\n# تشغيل محلياً مع Wasmtime\nwasmtime serve target\u002Fwasm32-wasip2\u002Frelease\u002Fmy_service.wasm\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2 id=\"wasm\">الحاويات مقابل وحدات Wasm: مقارنة كاملة\u003C\u002Fh2>\n\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>البعد\u003C\u002Fth>\u003Cth>حاويات (Docker\u002FOCI)\u003C\u002Fth>\u003Cth>وحدات Wasm (WASI 0.3)\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\n\u003Ctr>\u003Ctd>البدء البارد\u003C\u002Ftd>\u003Ctd>500ms - 5s\u003C\u002Ftd>\u003Ctd>0.3ms - 3ms\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>تكلفة الذاكرة\u003C\u002Ftd>\u003Ctd>50MB - 500MB أساسي\u003C\u002Ftd>\u003Ctd>1MB - 20MB أساسي\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>حجم الملف الثنائي\u003C\u002Ftd>\u003Ctd>50MB - 2GB صور\u003C\u002Ftd>\u003Ctd>1MB - 30MB مكونات\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>نموذج العزل\u003C\u002Ftd>\u003Ctd>Linux namespaces + cgroups\u003C\u002Ftd>\u003Ctd>صندوق رمل Wasm (آمن للذاكرة بالتصميم)\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>دعم اللغات\u003C\u002Ftd>\u003Ctd>جميعها (ثنائيات أصلية)\u003C\u002Ftd>\u003Ctd>Rust, Go, Python, JS, C\u002FC++, C#, Kotlin\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>الشبكة\u003C\u002Ftd>\u003Ctd>مكدس شبكة OS كامل\u003C\u002Ftd>\u003Ctd>مقابس WASI (TCP, UDP, TLS)\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>نظام الملفات\u003C\u002Ftd>\u003Ctd>نظام ملفات POSIX كامل\u003C\u002Ftd>\u003Ctd>FS افتراضي قائم على القدرات\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>الوصول إلى GPU\u003C\u002Ftd>\u003Ctd>NVIDIA Container Toolkit\u003C\u002Ftd>\u003Ctd>تجريبي (wasi-nn)\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>نضج النظام البيئي\u003C\u002Ftd>\u003Ctd>12+ سنة، نظام بيئي ضخم\u003C\u002Ftd>\u003Ctd>3 سنوات، نمو سريع\u003C\u002Ftd>\u003C\u002Ftr>\n\u003Ctr>\u003Ctd>التنسيق\u003C\u002Ftd>\u003Ctd>Kubernetes, ECS, Nomad\u003C\u002Ftd>\u003Ctd>SpinKube, wasmCloud, Kubernetes (عبر shim)\u003C\u002Ftd>\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\n\u003Ch3>متى تستخدم Wasm\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>الوظائف بدون خادم\u003C\u002Fstrong> — عندما تكون زمن انتقال البدء البارد مهمة\u003C\u002Fli>\n\u003Cli>\u003Cstrong>الحوسبة الطرفية\u003C\u002Fstrong> — عندما يكون حجم الملف الثنائي والذاكرة مقيدين\u003C\u002Fli>\n\u003Cli>\u003Cstrong>أنظمة الإضافات\u003C\u002Fstrong> — عندما تحتاج لتنفيذ آمن لكود طرف ثالث\u003C\u002Fli>\n\u003Cli>\u003Cstrong>المنصات متعددة المستأجرين\u003C\u002Fstrong> — عندما تكون كثافة العزل مهمة\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>متى تبقى مع الحاويات\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>أحمال GPU\u003C\u002Fstrong> (تدريب\u002Fاستدلال ML) — دعم GPU في WASI لا يزال تجريبياً\u003C\u002Fli>\n\u003Cli>\u003Cstrong>التطبيقات القديمة\u003C\u002Fstrong> المعتمدة على ميزات OS محددة\u003C\u002Fli>\n\u003Cli>\u003Cstrong>الخدمات ذات الحالة\u003C\u002Fstrong> التي تحتاج تخزيناً محلياً دائماً\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2 id=\"\">دراسات حالة إنتاجية\u003C\u002Fh2>\n\u003Ch3>Shopify: تجارة على الحافة\u003C\u002Fh3>\n\u003Cp>نقلت Shopify عرض واجهات متاجرها إلى Wasm على الحافة في 2025، معالجة \u003Cstrong>2.3 مليون طلب في الثانية\u003C\u002Fstrong> عبر Cloudflare Workers. النتيجة: \u003Cstrong>تخفيض 68% في TTFB\u003C\u002Fstrong> للعملاء العالميين.\u003C\u002Fp>\n\u003Ch3>Midokura (Sony): بوابة IoT\u003C\u002Fh3>\n\u003Cp>تستخدم شركة Sony التابعة Midokura Wasm لتشغيل معالجات بروتوكولات الأجهزة على بوابات IoT بذاكرة 256MB. مع Wasm، يشغلون \u003Cstrong>40 معالج بروتوكول\u003C\u002Fstrong> في مساحة الذاكرة التي كانت تدعم 4 حاويات فقط.\u003C\u002Fp>\n\u003Ch3>منصة Fermyon: SaaS متعدد المستأجرين\u003C\u002Fh3>\n\u003Cp>تشغل منصة Fermyon السحابية أحمال العملاء كمكونات Wasm مع \u003Cstrong>12,000 مثيل لكل عقدة\u003C\u002Fstrong>. بدء بارد متوسط \u003Cstrong>0.8ms\u003C\u002Fstrong>، وتكلفة لكل طلب أقل بـ 10 مرات من وظائف Lambda المكافئة.\u003C\u002Fp>\n\u003Ch2 id=\"\">نموذج الأمان\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>\u003Cstrong>الرفض افتراضياً\u003C\u002Fstrong> — وحدة Wasm لا يمكنها الوصول إلى أي شيء ما لم يمنح المضيف القدرات صراحة\u003C\u002Fli>\n\u003Cli>\u003Cstrong>أمان الذاكرة\u003C\u002Fstrong> — الذاكرة الخطية تمنع تجاوزات المخزن المؤقت من الهروب من صندوق الرمل\u003C\u002Fli>\n\u003Cli>\u003Cstrong>بدون سلطة محيطة\u003C\u002Fstrong> — على عكس الحاويات، يجب منح كل قدرة بشكل فردي\u003C\u002Fli>\n\u003Cli>\u003Cstrong>التحقق الرسمي\u003C\u002Fstrong> — مواصفات Wasm بسيطة بما يكفي لأدوات التحقق الرسمي\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2 id=\"\">الأسئلة الشائعة\u003C\u002Fh2>\n\u003Ch3 id=\"wasi-0-3\">هل WASI 0.3 جاهز للإنتاج؟\u003C\u002Fh3>\n\u003Cp>نعم. WASI 0.3 هو أول إصدار تعتبره Bytecode Alliance جاهزاً للإنتاج لأحمال الخادم.\u003C\u002Fp>\n\u003Ch3 id=\"wasm-kubernetes\">هل يمكن لـ Wasm استبدال Kubernetes؟\u003C\u002Fh3>\n\u003Cp>ليس بالكامل. يستبدل Wasm وقت تشغيل الحاوية للأحمال المناسبة، لكن التنسيق لا يزال ضرورياً.\u003C\u002Fp>\n\u003Ch3 id=\"\">ماذا عن برامج تشغيل قواعد البيانات؟\u003C\u002Fh3>\n\u003Cp>دعم المقابس الكامل في WASI 0.3 يعني أن برامج تشغيل قواعد البيانات الأصلية تعمل. واجهة \u003Ccode>wasi:sql\u003C\u002Fcode> توفر API SQL موحدة.\u003C\u002Fp>\n\u003Ch3 id=\"wasi-0-3\">كيف يتعامل WASI 0.3 مع الحالة؟\u003C\u002Fh3>\n\u003Cp>وحدات Wasm بدون حالة افتراضياً. للحالة، استخدم \u003Ccode>wasi:keyvalue\u003C\u002Fcode> أو \u003Ccode>wasi:sql\u003C\u002Fcode> أو خدمات خارجية عبر مقابس WASI.\u003C\u002Fp>\n\u003Ch3 id=\"rust-wasm\">ما هو منحنى التعلم لـ Rust + Wasm؟\u003C\u002Fh3>\n\u003Cp>إذا كنت تعرف Rust بالفعل، فالتعلم الإضافي ضئيل. إذا كان Rust جديداً عليك، توقع 2-4 أسابيع للوصول إلى الإنتاجية.\u003C\u002Fp>\n","ar","b0000000-0000-0000-0000-000000000001",true,"2026-03-28T10:44:48.694830Z","WASI 0.3 ونهاية البدء البارد: Wasm من جانب الخادم في الإنتاج 2026","WASI 0.3 يقدم async I\u002FO أصلي وأنواع stream ومقابس كاملة. بدء بارد بالميكروثانية مقابل ثوان الحاويات. دليل كامل لـ Wasm الخادم في الإنتاج.","WASI 0.3",null,"index, follow",[22,27,31],{"id":23,"name":24,"slug":25,"created_at":26},"c0000000-0000-0000-0000-000000000012","DevOps","devops","2026-03-28T10:44:21.513630Z",{"id":28,"name":29,"slug":30,"created_at":26},"c0000000-0000-0000-0000-000000000006","Docker","docker",{"id":32,"name":33,"slug":34,"created_at":26},"c0000000-0000-0000-0000-000000000001","Rust","rust",[36,43,49],{"id":37,"title":38,"slug":39,"excerpt":40,"locale":12,"category_name":41,"published_at":42},"d0000000-0000-0000-0000-000000000686","لماذا Bali تتحول إلى مركز تكنولوجيا التأثير في جنوب شرق آسيا 2026","limadha-bali-tatahawwal-markaz-tiknulujia-attathir-janub-sharq-asia-2026","تحتل Bali المرتبة 16 بين أنظمة الشركات الناشئة في جنوب شرق آسيا. مع تركيز متزايد لبناة Web3 وشركات AI المستدامة الناشئة وشركات تكنولوجيا السفر البيئي، تنحت الجزيرة مكانتها كعاصمة تكنولوجيا التأثير في المنطقة.","الهندسة","2026-03-28T10:44:50.120618Z",{"id":44,"title":45,"slug":46,"excerpt":47,"locale":12,"category_name":41,"published_at":48},"d0000000-0000-0000-0000-000000000685","فسيفساء حماية البيانات في ASEAN: قائمة امتثال للمطورين","fusayfisa-himayat-albayanat-asean-qaimat-imtithal-lilmutawwirin","تمتلك سبع دول في ASEAN الآن قوانين شاملة لحماية البيانات، لكل منها نماذج موافقة ومتطلبات توطين وهياكل عقوبات مختلفة. إليك قائمة امتثال عملية للمطورين الذين يبنون تطبيقات متعددة البلدان.","2026-03-28T10:44:50.114369Z",{"id":50,"title":51,"slug":52,"excerpt":53,"locale":12,"category_name":41,"published_at":54},"d0000000-0000-0000-0000-000000000684","التحول الرقمي في Indonesia بقيمة 29 مليار دولار: فرص لشركات البرمجيات","attahawwul-arraqami-indonesia-29-milyar-dular-furas-sharikat-albarmajiyat","من المتوقع أن يصل سوق خدمات تكنولوجيا المعلومات في Indonesia إلى 29.03 مليار دولار في 2026، ارتفاعاً من 24.37 مليار دولار في 2025. البنية التحتية السحابية والذكاء الاصطناعي والتجارة الإلكترونية ومراكز البيانات تقود أسرع نمو في جنوب شرق آسيا.","2026-03-28T10:44:50.092728Z",{"id":13,"name":56,"slug":57,"bio":58,"photo_url":19,"linkedin":19,"role":59,"created_at":60,"updated_at":60},"Open Soft Team","open-soft-team","The engineering team at Open Soft, building premium software solutions from Bali, Indonesia.","Engineering Team","2026-03-28T08:31:22.226811Z"]