العودة

Libghostty 1.0 يثبت استقرار واجهة C ABI لمكتبة محاكاة الطرفية المحمولة
SiTech AI Team4 دقيقة قراءة

Libghostty 1.0 يثبت استقرار واجهة C ABI لمكتبة محاكاة الطرفية المحمولة

أعلن ميتشل هاشيموتو في 6 نوفمبر 2026 عن libghostty 1.0: مكتبة C محمولة لمحاكاة الطرفية استُخرجت من Ghostty، وأصبحت المكتبة وواجهة C ABI مستقرتين، مع تبنٍّ واسع ودعم للتعبئة.

أعلن ميتشل هاشيموتو في 6 نوفمبر 2026 عن libghostty 1.0، مكتبة C محمولة وعالية الأداء لمحاكاة الطرفية، استُخرجت مباشرة من نواة Ghostty. يعني هذا الإصدار أن المكتبة نفسها وواجهة C ABI أصبحتا مستقرتين. قبل ما يزيد قليلاً على عام، كانت وحدة Zig قد دُمجت للتو، ولم تكن واجهة C API موجودة، ولم يكن أحد غير Ghostty يستخدمها.

التبني والنظام البيئي

تعمل طرفيات بيئات JetBrains IDE الآن على libghostty، ويبلغ عدد المستخدمين النشطين أكثر من 12.5 مليون مستخدم وفق تقرير من JetBrains. لدى Neovim طلب سحب معتمد لاستبدال libvterm بـ libghostty-vt، وهو ما سيغلق مشكلة عمرها 10 سنوات تتعلق بإعادة ترتيب سجل التمرير عند تغيير حجم النافذة؛ وينتظر المشرفون إصداراً موسوماً قبل الدمج، كي تتمكن التوزيعات من تعبئة الاعتماد بشكل منفصل. يجرّب مطورو KDE بديلاً لـ Konsole مبنياً عليها، ويستخدم Turborepo من Vercel المكتبة لعرض مخرجات المهام في واجهته النصية، ويستخدم devenv المكتبة لتشغيل الصدفات، واستخدمت Antithesis المكتبة لاختبار برامج TUI بالتشويش فوجدت أخطاء حقيقية في btop وغيرها. يجلب Ghostel المكتبة إلى Emacs، ويوفر ghostty-web نسخة WASM بواجهة API متوافقة مع Xterm.js، وتضمّن OrbStack المكتبة في منتجها. وقد بُنيت على المكتبة طرفيات جديدة وأدوات برمجة بالوكلاء مثل herdr وcmux، وتغطي ارتباطات المجتمع اللغوية Rust وGo وJavaScript وSwift وPython و.NET وElixir وDart وJava وغيرها. وتتابع قائمة awesome-libghostty أكثر من مئة مشروع. ويقول المشروع إن عدد من يستخدمون اليوم طرفية تعمل بـ libghostty أكبر بكثير من عدد مستخدمي تطبيق Ghostty نفسه.

استقرار ABI والتعبئة

يتبع libghostty-vt الإصدار الدلالي مع تعهدات صارمة بتوافق ABI، وله سياسة استقرار ABI حقيقية ومفروضة. كل كائن مقبض معتم، ومئات القيم تُقرأ وتُكتب عبر مجموعة صغيرة من الدوال الجالبة والضابطة المرتبطة بـ enum، حتى يمكن إضافة قيم جديدة دون رمز جديد. والبرامج التي تُربط رؤوسها الأحدث بمكتبة أقدم تحصل على GHOSTTY_UNSUPPORTED بدلاً من الانهيار أو سلوك غير محدد. والهياكل القليلة غير المعتمة تحمل حجمها كي يمكن إلحاق حقول بها لاحقاً، أو تحتوي حشواً محجوزاً. وتُثبَّت enums على int في كل مترجم، بالقدر الذي يسمح به معيار C. وتفرض CI هذه السياسة: كل تغيير يُفحص بـ libabigail مقابل نسخة أساسية مثبتة على Linux، ومقابل قوائم مرجعية للأنواع على macOS وWebAssembly. وعلى منصات ELF يُمنح كل رمز مُصدَّر رقم إصدار، لذا يرفض المحمّل الديناميكي تحميل مكتبة غير متوافقة بالاسم بدلاً من الفشل لاحقاً بطريقة غامضة. ويضيف الإصدار 1.0 أدوات البناء وأرشيفات المصدر والاعتماديات والتوثيق ودعم التعبئة اللازم لكل نظام تشغيل وتوزيع رئيسي، بما في ذلك SONAME صحيح ورؤوس وملفات pkg-config وإعداد حزمة CMake. وللمكتبة دورة إصدار مستقلة عن تطبيق Ghostty، وأرشيفات لا تحتوي إلا على الملفات والاعتماديات التي تحتاجها. ويُنشر مع كل إصدار أرشيف مصدر موقّع وأرشيف اعتماديات مرافق، كي تتمكن التوزيعة من بناء المكتبة دون اتصال بالشبكة. المكتبة مرخصة بـ MIT، ولا تحتاج وقت التشغيل شيئاً أبعد من libc، ويمكن بناؤها بشكل freestanding. واعتمادياتها مرخصة بتراخيص متساهلة وتشمل simdutf وGoogle Highway وجدول Unicode مضغوطاً وWuffs؛ ولا يوجد كود copyleft في شجرة الاعتماديات.

قابلية النقل واستخدام الموارد

تشمل المنصات المختبرة في CI، باختبارات وحدة كاملة وتشغيل كل الأمثلة، Linux مع glibc أو musl على x86_64 وaarch64، وmacOS 13 وما بعده على x86_64 وaarch64، وiOS 13 وما بعده على aarch64، وFreeBSD على x86_64 وaarch64، وWindows على x86_64، وAndroid على aarch64 وx86_64 وarm، وWebAssembly wasm32 freestanding. وهناك مجموعة ثانية تُبنى في CI دون اختبار: bare metal riscv32 وthumb، وWebAssembly WASI wasm32، وWindows arm64، وillumos x86_64، وx86 ذات 32 بت. ولا تنشئ المكتبة أي خيوط، ولا تخصص الذاكرة إلا عبر مخصص قابل للتخصيص، وتستخدم قدراً ضئيلاً من الحساب والذاكرة. ويقول المؤلف إنه شغّل 10 آلاف طرفية نشطة، كل منها بصدفة حية تُخرج بيانات، على خادم Linux بأربع أنوية و8 غيغابايت من الذاكرة، واضطر إلى استخدام dash لأن bash كان يستهلك ذاكرة أكبر بكثير ولا يتسع للميزانية.

ما التالي

يشكّل libghostty 1.0 محطة مهمة: يمكن الآن إنشاء طرفية بنحو 1500 سطر من C بمزايا أكثر وأداء أفضل من أي طرفية تقريباً وُجدت في 2025، ومن معظم ما هو موجود اليوم في 2026. وبفضل نظام بيئي غني من ارتباطات اللغات يمكن فعل ذلك بأي لغة برمجة رئيسية، وبجهد ضئيل. التوثيق والأمثلة والتنزيلات متاحة على lib.ghostty.org.

المصادر: Mitchell Hashimoto

SiTech

SiTech — تطوير ويب مدعوم بالذكاء الاصطناعي

نبني مواقع سريعة وعصرية وندمج الذكاء الاصطناعي في سير عمل الشركات. لديك مشروع أو سؤال؟ يسعدنا مساعدتك.