كل المقالات

Bun يُعيد كتابة بيئة التشغيل بـ Rust بعد استحواذ Anthropic: دروس لمؤسسي الشركات الناشئة

عمر حسن11 يوليو 2026 في 2:57 ص5 دقيقة للقراءة

أبرز النقاط

  • استحوذت Anthropic على Bun في ديسمبر 2025 ويعمل فريق Bun الآن ضمن الشركة
  • قرار الانتقال من Zig إلى Rust جاء لمعالجة ثغرات أمان الذاكرة المتكررة
  • استُخدم نموذج Claude Fable 5 التجريبي في عملية إعادة الكتابة الضخمة

في خطوة تُعيد رسم خريطة أدوات تطوير JavaScript، أعلن Jarred Sumner مؤسس Bun أن بيئة التشغيل الشهيرة تُعاد كتابتها بالكامل من لغة Zig إلى Rust، وذلك بعد استحواذ شركة Anthropic على المشروع في ديسمبر 2025. القرار لم يكن عشوائيًا: قائمة طويلة من ثغرات use-after-free وتسريبات الذاكرة دفعت الفريق للبحث عن حل جذري بدلًا من ترقيع الأخطاء إلى الأبد.

Advertisement

لماذا انتقل Bun من Zig إلى Rust؟

بدأ Bun عام 2021 كنقل حرفي لمُحوّل esbuild من Go إلى Zig. اختار Sumner لغة Zig بعد أن أثارت حماسته وثيقة مرجعية من صفحة واحدة رآها على Hacker News، إذ وعدت بتحكم منخفض المستوى وأداء فائق. خلال عام واحد فقط، وفي شقة ضيقة بأوكلاند ودون مساعدة نماذج LLM، بنى Sumner منفردًا: مُحوّل JavaScript وTypeScript وCSS، ومُصغّر، ومُجمّع، ومدير حزم متوافق مع npm، ومُشغّل اختبارات شبيه بـ Jest، وعميل HTTP/WebSocket، إضافة إلى تطبيقات عشرات الوحدات من Node.js مثل fs وnet وtls.

22 مليون
تنزيل شهري لواجهة Bun CLI حاليًا

اليوم يتجاوز Bun 22 مليون تنزيل شهري، وتعتمد عليه أدوات رائجة مثل Claude Code وOpenCode كبيئة تشغيل أساسية، فيما توفر منصات Vercel وRailway وDigitalOcean دعمًا مباشرًا له.

ثغرات الذاكرة: الثمن الباهظ للطموح الواسع

وسّع نطاق Bun الطموح أصبح سيفًا ذا حدين. في الإصدار 1.3.14 وحده، أصلح الفريق قائمة مرعبة من الأخطاء تشمل:

  • انهيار heap-use-after-free في node:zlib عند استدعاء reset() أثناء كتابة غير متزامنة على مجموعة الخيوط
  • انهيار use-after-free في node:http2 حين تُسبّب استدعاءات JS إعادة تجزئة خريطة التجزئة وإبطال مؤشرات التدفق
  • تسريب ذاكرة في crypto.scrypt حيث لم تُحرَّر المخازن المؤقتة عند فشل تخصيص المخرجات
  • تسريب ~6.5 كيلوبايت لكل استدعاء في tlsSocket.setSession() بسبب غياب SSL_SESSION_free
  • تسريب دائم في fs.watch() نتيجة خطأ في عدّاد المراجع أبقى كل مراقب كجذر GC
  • انهيار double-free في مُحلّل CSS عند وجود بادئات vendor مع خلفيات متعددة الطبقات

هذه الأخطاء ليست نتيجة إهمال؛ فالفريق أضاف دعم Address Sanitizer لمُصرّف Zig، ويُشغّل مجموعة الاختبارات مع ASAN على كل commit، ويُجري اختبار fuzzing على مدار الساعة باستخدام Fuzzilli المستخدم في V8 وJavaScriptCore. لكن الجمع بين جمع القمامة الخاص بـ JavaScriptCore وإدارة الذاكرة اليدوية في Zig خلق تعقيدًا لا تُصمَّم له أي لغة فعليًا.

كيف ساعد Claude Fable 5 في إعادة الكتابة؟

أكد Sumner أنه استخدم نسخة تجريبية من نموذج Claude Fable 5 في جزء كبير من عملية إعادة الكتابة إلى Rust. هذا يُشير إلى أن ترحيل قواعد الشيفرة الضخمة بين اللغات لم يعد مهمة تستغرق سنوات؛ نماذج الذكاء الاصطناعي المتقدمة باتت قادرة على تسريع هذا النوع من المشاريع جذريًا. بالنسبة لمؤسسي الشركات الناشئة، هذا يعني أن قرارات اللغة لم تعد قرارات لا رجعة فيها كما كانت.

ℹ️

رأي Logicity

قرار Anthropic بالاستحواذ على Bun يكشف اتجاهًا متصاعدًا: شركات الذكاء الاصطناعي تبني طبقة البنية التحتية للمطورين لتضمن أن أدواتها تعمل بسلاسة. من يملك بيئة التشغيل يؤثر في كيفية تشغيل الوكلاء الذكيين. للمؤسسين الذين يبنون أدوات CLI أو بيئات تشغيل: Bun وDeno يتنافسان مباشرة مع Node.js، لكن Bun الآن مدعوم بموارد شركة بمليارات الدولارات. Node.js يبقى مجانيًا ومفتوح المصدر تمامًا، بينما Deno يقدم نموذجًا سحابيًا مدفوعًا (Deno Deploy). الاستثمار في التوافق مع أكثر من بيئة بات ضرورة لا رفاهية.

Advertisement

ما الذي جعل Zig خيارًا ممتازًا ثم غير كافٍ؟

يعترف Sumner بفضل Zig صراحةً: لولاها لما أمكنه بناء هذا الكم الهائل من الوظائف في عام واحد. لكنه يوضح أن Zig لا تملك constructors أو destructors، ومعظم التنظيف يُكتب صراحةً عند كل موقع استدعاء عبر defer. هذا مناسب لكثير من المشاريع، لكنه يصبح كابوسًا حين تمزج بين جمع القمامة وإدارة الذاكرة اليدوية في نظام بحجم Bun.

Rust بالمقابل تفرض قواعد صارمة للملكية وعمر المراجع في وقت الترجمة، مما يمنع معظم أخطاء use-after-free وdouble-free قبل أن تصل إلى الإنتاج. الثمن هو منحنى تعلم أشد انحدارًا ووقت ترجمة أطول، لكن لفريق يخدم 22 مليون تنزيل شهريًا، الاستقرار يستحق هذا الثمن.

ماذا يعني هذا لمستخدمي Bun والمطورين؟

في المدى القصير، لا شيء يتغير للمستخدمين النهائيين؛ Bun سيظل متوافقًا مع Node.js وسيستمر تلقي التحديثات. لكن على المدى المتوسط، ينبغي توقع استقرار أعلى وثغرات أقل، مع احتمال تغييرات في متطلبات الترجمة لمن يبنون Bun من المصدر. أدوات مثل Claude Code التي تعتمد على Bun ستستفيد مباشرة من هذا التحسين في الموثوقية.

الأسئلة الشائعة

هل سيبقى Bun مفتوح المصدر بعد استحواذ Anthropic؟

لم يُعلن عن تغيير في نموذج الترخيص. Bun كان ولا يزال مفتوح المصدر تحت رخصة MIT، ولا يوجد ما يشير إلى تغيير ذلك.

متى سيُصدر إصدار Bun المكتوب بـ Rust؟

لم يُحدد تاريخ رسمي بعد. إعادة كتابة مشروع بهذا الحجم تستغرق وقتًا حتى مع مساعدة الذكاء الاصطناعي.

هل يجب أن أنتقل من Node.js إلى Bun الآن؟

إذا كنت تبحث عن أداء أعلى في بيئة تطوير أو أدوات CLI، فـ Bun خيار جيد. لكن للإنتاج الحرج، انتظر استقرار إصدار Rust أو استخدم Node.js LTS.

ما هو Claude Fable 5 المذكور في الإعلان؟

نموذج تجريبي من Anthropic استخدمه فريق Bun في عملية إعادة الكتابة. لم يُطلق للعموم بعد.

كيف يؤثر هذا على المطورين في منطقة الخليج؟

لا تأثير مباشر على التوفر أو التسعير؛ Bun مجاني ومفتوح المصدر. لكن المطورين في السعودية والإمارات الذين يستخدمون Bun في مشاريعهم سيستفيدون من الاستقرار المحسّن.

ℹ️

هل تحتاج مساعدة في التطبيق؟

إذا كنت تخطط لترحيل مشروعك إلى Bun أو تقييم بيئات تشغيل JavaScript لشركتك الناشئة، تواصل مع فريق Logicity للحصول على استشارة تقنية مخصصة.

Advertisement
ع

عمر حسن

كاتب تقني وابتكار

أُنتِج هذا المقال بمساعدة الذكاء الاصطناعي وراجعه فريق التحرير في لوجيسيتي. اعرف المزيد في سياسة التحرير.

اقرأ أيضاً