GLib
GLib تین (سابقہ پانچ) نچلی سطح کے سسٹم لائبریریوں کا ایک بنڈل ہے جو C میں لکھا گیا ہے اور بنیادی طور پر GNOME کے ذریعہ تیار کیا گیا ہے۔ GLib کا کوڈ GTK سے الگ کیا گیا تھا، اس لیے اسے GNOME کے علاوہ دوسرے سافٹ ویئر کے ذریعے استعمال کیا جا سکتا ہے اور تب سے اسے متوازی طور پر تیار کیا گیا ہے۔ خصوصیات GLib جدید ڈیٹا ڈھانچے فراہم کرتا ہے، جیسے میموری کے حصے، دوگنا اور واحد منسلک فہرستیں، ہیش ٹیبلز، متحرک سٹرنگز اور سٹرنگ یوٹیلیٹیز، جیسے کہ لیکسیکل اسکینر، سٹرنگ کے حصے (سٹرنگز کے گروپ)، متحرک صف، متوازن بائنری ٹریز، N-ary ٹریز، کوارک (سٹرنگ کی دو طرفہ ایسوسی ایشن اور ایک منفرد انٹیجر شناخت کنندہ)، کلیدی ڈیٹا کی فہرستیں، تعلقات اور ٹپل۔ کیشے میموری مینجمنٹ فراہم کرتے ہیں۔ جی ایل آئی بی ایسے افعال کو نافذ کرتا ہے جو تھریڈز، تھریڈ پروگرامنگ اور متعلقہ سہولیات فراہم کرتے ہیں جیسے کہ ابتدائی متغیر رسائی، میوٹیکس، غیر متغیر قطاریں، محفوظ میموری پول، میسج پاسنگ اور لاگنگ، ہک افعال (کال بیک رجسٹریشن) اور ٹائمر۔ جی ایل آئی بی میں پیغامات بھیجنے کی سہولیات بھی شامل ہیں جیسے بائٹ آرڈر کی تبدیلی اور آئی/او چینل۔ GLib کی کچھ دیگر خصوصیات میں شامل ہیں: معیاری میکرو انتباہات اور ماڈیولز اجزاء کی متحرک لوڈنگ GLib پیکیج پانچ لائبریریوں پر مشتمل تھا، لیکن ان سب کو ایک لائبریری میں ضم کر دیا گیا، اس کے بعد سے اس کا نام صرف GLib رکھا گیا، اور اب یہ اسٹینڈ لون لائبریریوں کے طور پر برقرار نہیں ہیں۔ اصل کتب خانے یہ تھے: گوبجیکٹ، ایک آبجیکٹ سسٹم جس میں ٹائپ سسٹم جی ٹائپ جی لیب جی موڈیول جی تھریڈ جی آئی او شامل ہے۔ ان میں سے تین ماخذ درخت کی الگ الگ ذیلی ڈائریکٹریز میں رہتے ہیں، اور اس لیے انہیں مجرد اجزاء کے طور پر سمجھا جا سکتا ہے: جی لیب، جی آبجیکٹ، اور جی آئی او۔ ان کے بارے میں سافٹ ویئر اسٹیک کے طور پر سوچا جا سکتا ہے: گوبجیکٹ GLib پر انحصار کرتا ہے، اور GIO اعلی سطح کی فعالیت فراہم کرتا ہے جو دونوں کا استعمال کرتا ہے۔ ہسٹری جی لیب کا آغاز جی ٹی کے + پروجیکٹ کے حصے کے طور پر ہوا، جسے اب جی ٹی کے کا نام دیا گیا ہے۔ تاہم، جی ٹی کے + ورژن 2 کو جاری کرنے سے پہلے، پروجیکٹ کے ڈویلپرز نے جی ٹی کے + سے کوڈ کو الگ کرنے کا فیصلہ کیا جو کہ گرافیکل یوزر انٹرفیس (جی یو آئی) کے لیے نہیں تھا، اس طرح جی لیب کو ایک علیحدہ سافٹ ویئر بنڈل کے طور پر بنایا گیا۔ GLib کو ایک علیحدہ لائبریری کے طور پر جاری کیا گیا تھا تاکہ دوسرے ڈویلپرز، جو GTK + کے GUI سے متعلق حصے استعمال نہیں کر رہے ہیں، وہ مکمل GUI لائبریری پر انحصار کیے بغیر لائبریری کے غیر GUI حصوں کا استعمال کر سکیں۔ چونکہ جی لیب ایک کراس پلیٹ فارم لائبریری ہے، اس لیے آپریٹنگ سسٹم کے ساتھ انٹرفیس کے لیے اس کا استعمال کرنے والی ایپلی کیشنز عام طور پر بغیر کسی بڑی تبدیلی کے مختلف آپریٹنگ سسٹمز میں پورٹیبل ہوتی ہیں۔ ریلیزز گلب فعال ترقی سے گزر رہا ہے۔ موجودہ جائزہ کے لیے https://gitlab.gnome.org/GNOME/glib/-/blob/main/NEWS دیکھیں۔ نیچے دیا گیا جدول 1998 سے 2022 تک کے بڑے پیچ نوٹوں کو دستاویز کرتا ہے۔ اسی طرح کے منصوبے دیگر کتب خانے ڈیٹا ڈھانچے کے نچلے درجے کے افعال اور نفاذ فراہم کرتے ہیں، جن میں شامل ہیں: مائیکروسافٹ فاؤنڈیشن کلاس لائبریری (ایم ایف سی)-سی پر مبنی ونڈوز اے پی آئی کے لیے ایک آبجیکٹ پر مبنی سی + + ریپر لائبریری جس میں کچھ ڈیٹا ڈھانچے اور دیگر سہولت فعالیت بھی شامل ہے۔ اسٹینڈرڈ ٹیمپلیٹ لائبریری (ایس ٹی ایل)-ڈیٹا ڈھانچے اور الگورتھم کے لیے سی + + لائبریری فروغ-سی + + کے لیے کچھ افعال فراہم کرتی ہے، جیسے تھریڈنگ پرائمیٹوز، جیسا کہ جی ایل آئی بی سی کیو ٹی کور کے لیے کرتا ہے-کیو ٹی فریم ورک ڈبلیو ایکس بیس کا بنیادی اے پی آئی-ڈبلیو ایکس ویجیٹس لائبریری کے غیر جی یو آئی افعال اپاچی پورٹیبل رن ٹائم اور ایپل کور فاؤنڈیشن میں جی ایل آئی بی کے ساتھ ایک بڑا فنکشنل اوورلیپ ہوتا ہے، اور بہت