جليب
تحتاج هذه المقالة إلى مصادر إضافية للتحقق . ( يوليو 2019 ) |
| المؤلف(ون) الأصلي(ون) | شون أموندسون |
|---|---|
| المطور(ون) | مشروع GNOME وآخرون. |
| الإصدار الأولي | 1998 |
| إصدار مستقر | 2.82.4 [1]
/ 11 ديسمبر 2024 |
| مستودع |
|
| مكتوب في | ج |
| نظام التشغيل | لينكس ، شبيه يونكس ، ماك أو إس ، ويندوز |
| منصة | متعدد المنصات |
| يكتب | مكتبة |
| رخصة | رخصة LGPLv2.1 |
| موقع إلكتروني | www.gtk.org |

GLib عبارة عن مجموعة من ثلاث مكتبات نظام منخفضة المستوى (كانت في السابق خمس مكتبات) مكتوبة بلغة C وتم تطويرها بشكل أساسي بواسطة GNOME . تم فصل كود GLib عن GTK ، لذلك يمكن استخدامه بواسطة برامج أخرى غير GNOME وتم تطويره بالتوازي منذ ذلك الحين.
يعود أصل اسم "GLib" إلى بداية المشروع كمكتبة أدوات مساعدة GTK C.
سمات
يوفر GLib هياكل بيانات متقدمة، مثل أجزاء الذاكرة، والقوائم المرتبطة بشكل مزدوج ومفرد ، وجداول التجزئة ، والسلاسل الديناميكية ، وأدوات السلاسل، مثل الماسح المعجمي ، وأجزاء السلاسل (مجموعات السلاسل)، والمصفوفات الديناميكية، والأشجار الثنائية المتوازنة ، والأشجار المكونة من N-ary ، والكواركات (ارتباط ثنائي الاتجاه بين سلسلة ومعرف عدد صحيح فريد)، وقوائم البيانات المفتاحية، والعلاقات، والثنائيات . توفر ذاكرة التخزين المؤقت إدارة الذاكرة.
ينفذ GLib وظائف توفر الخيوط وبرمجة الخيوط والمرافق ذات الصلة مثل الوصول إلى المتغيرات البدائية، والمزامنات المتبادلة ، والطوابير غير المتزامنة، ومجموعات الذاكرة الآمنة ، وتمرير الرسائل وتسجيلها، ووظائف الخطاف (تسجيل معاودة الاتصال) والمؤقتات . يتضمن GLib أيضًا مرافق تمرير الرسائل مثل تحويل ترتيب البايت وقنوات الإدخال/الإخراج.
تتضمن بعض الميزات الأخرى لبرنامج GLib ما يلي:
- وحدات الماكرو القياسية
- تحذيرات وتأكيدات
- التحميل الديناميكي للوحدات النمطية
عناصر
تتكون حزمة GLib من خمس مكتبات، ولكن تم دمجها جميعًا في مكتبة واحدة، ومنذ ذلك الحين تم تسميتها ببساطة GLib ، ولم تعد مدعومة كمكتبات مستقلة. كانت المكتبات الأصلية هي:
من بين هذه البرامج، تستمر ثلاثة برامج في الإقامة في أدلة فرعية منفصلة من شجرة المصدر، وبالتالي يمكن اعتبارها مكونات منفصلة: GLib وGObject وGIO. ويمكن اعتبارها مجموعة برامج: يعتمد GObject على GLib، ويوفر GIO وظائف أعلى مستوى تستخدم كليهما.
تاريخ
بدأ GLib كجزء من مشروع GTK+ ، والذي يُسمى الآن GTK. ومع ذلك، قبل إصدار GTK+ الإصدار 2، قرر مطورو المشروع فصل الكود عن GTK+ الذي لم يكن مخصصًا لواجهات المستخدم الرسومية (GUIs)، وبالتالي إنشاء GLib كحزمة برامج منفصلة. تم إصدار GLib كمكتبة منفصلة حتى يتمكن المطورون الآخرون، الذين لا يستخدمون الأجزاء المتعلقة بواجهة المستخدم الرسومية من GTK+، من استخدام الأجزاء غير المتعلقة بواجهة المستخدم الرسومية من المكتبة دون الاعتماد على مكتبة واجهة المستخدم الرسومية الكاملة.
نظرًا لأن GLib عبارة عن مكتبة متعددة الأنظمة الأساسية ، فإن التطبيقات التي تستخدمها للتفاعل مع نظام التشغيل تكون عادةً قابلة للنقل عبر أنظمة تشغيل مختلفة دون تغييرات كبيرة. [2]
الإصدارات
يخضع Glib للتطوير النشط. للحصول على نظرة عامة حالية، راجع https://gitlab.gnome.org/GNOME/glib/-/blob/main/NEWS. يوثق الجدول أدناه ملاحظات التصحيح الرئيسية من عام 1998 إلى عام 2022.
| سلسلة الإصدارات | تاريخ الإصدار الأولي |
تحسينات كبيرة |
|---|---|---|
| GLib 1.x | ||
| 1.1 | 1998-09-12 | |
| 1.2 | 1999-02-27 | |
| 1.3 | 2001-09-25 | |
| GLib 2.x | ||
| 2.0 | 2002-03-08 | |
| 2.24 | 2010-03-26 | GVariant، GConverted |
| 2.26 | 2010-09-27 | ارتباطات خصائص GSettings وGDbus و GObject (GAtomic لعد المراجع) |
| 2.30 | 2011-09-26 | تطبيقات GA غير الفريدة، الاستخدام eventfd()لإيقاظ الحلقة الرئيسية، وتحسين مجموعة GHashTable، وقابلية توسيع بيانات GObject
|
| 2.32 | 2012-03-24 | خطط لـ GLib 2.32 |
| 2.34 | 2012-09-23 | ما الجديد للمطورين في GLib 2.34 |
| 2.36 | 2013-03-25 | |
| 2.38 | 2013-09-23 | التطبيقات التي يتم تشغيلها باستخدام تنشيط D-Bus [3] GSubprocess، Unicode 6.3 (تم إصداره في سبتمبر 2013) |
| 2.40 | 2014-03-24 | GNotification، واجهة برمجة تطبيقات إشعارات النظام [4] |
| 2.42 | 2014-09-22 | |
| 2.43 | 2014-10-27 | |
| 2.44 | 2015-03-23 | |
| 2.45 | 2015-04-30 | |
| 2.46 | 2015-09-21 | |
| 2.47 | 2015-10-26 | |
| 2.48 | 2016-03-22 | |
| 2.50 | 2016-09-19 | |
| 2.52 | 2017-03-19 | |
| 2.53 | 2017-04-25 | |
| 2.54 | 2018-01-08 | |
| 2.55 | 2018-02-06 | |
| 2.56 | 2018-03-12 | |
| 2.57 | 2018-05-05 | |
| 2.58 | 2018-08-30 | |
| 2.59 | 2018-12-23 | |
| 2.60 | 2019-03-04 | |
| 2.61 | 2019-04-15 | |
| 2.62 | 2019-09-05 | |
| 2.63 | 2019-10-04 | |
| 2.64 | 2020-02-27 | |
| 2.65 | 2020-06-18 | |
| 2.66 | 2020-09-10 | |
| 2.67 | 2020-10-23 | |
| 2.68 | 2021-03-18 | |
| 2.69 | 2021-07-06 | |
| 2.70 | 2021-09-17 | |
| 2.71 | 2021-12-16 | |
| 2.72 | 2022-03-17 | |
مشاريع مماثلة
توفر المكتبات الأخرى وظائف وتنفيذات منخفضة المستوى لهياكل البيانات، بما في ذلك:
- مكتبة Microsoft Foundation Class Library (MFC) – مكتبة غلاف C++ موجهة للكائنات لواجهة برمجة تطبيقات Windows المستندة إلى C والتي تتضمن أيضًا بعض هياكل البيانات ووظائف الراحة الأخرى
- مكتبة القوالب القياسية (STL) – مكتبة C++ لهياكل البيانات والخوارزميات
- Boost – يوفر بعض الوظائف لـ C++، مثل بدائيات الترابط، على غرار ما يفعله GLib لـ C
- QtCore – واجهة برمجة التطبيقات الأساسية لإطار عمل Qt
- wxBase – وظائف غير واجهة المستخدم الرسومية لمكتبة wxWidgets
- يتداخل Apache Portable Runtime وApple Core Foundation بشكل كبير مع GLib، ويوفران العديد من تنفيذات الترابط المحمولة لنظام التشغيل والشبكة وبنية البيانات المماثلة في C.
مراجع
- ^ "2.82.4 · GNOME / GLib · GitLab" . تم الاسترجاع في 13 ديسمبر 2024 .
- ^ كراوس، أندرو (2007). أسس تطوير GTK+ . صوت الخبراء في المصادر المفتوحة. أبريس . ص. 5. رقم ISBN 978-1-59059-793-4. تم الاسترجاع في 3 أبريل 2013.
[GLib] يوفر واجهة متعددة الأنظمة تسمح بتشغيل الكود الخاص بك على أي من أنظمة التشغيل المدعومة مع القليل من إعادة كتابة الكود أو بدونها !
- ^ "إعداد تطبيق لتشغيل D-Bus".
- ^ "GNotification".
روابط خارجية
- توثيق واجهة برمجة التطبيقات GLib
- شجرة مصدر Git GLib
