GLib
જી. એલ. આઈ. બી. એ ત્રણ (અગાઉ પાંચ) નિમ્ન-સ્તરની સિસ્ટમ લાઈબ્રેરીઓનું બંડલ છે જે સીમાં લખાયેલું છે અને મુખ્યત્વે જી. એન. ઓ. એમ. ઈ. દ્વારા વિકસાવવામાં આવ્યું છે. GLib નો કોડ GTK થી અલગ કરવામાં આવ્યો હતો, તેથી તેનો ઉપયોગ GNOME સિવાયના સોફ્ટવેર દ્વારા કરી શકાય છે અને ત્યારથી તે સમાંતર રીતે વિકસાવવામાં આવ્યો છે. વિશેષતાઓ જી. એલ. આઈ. બી. અદ્યતન ડેટા સ્ટ્રક્ચર્સ પ્રદાન કરે છે, જેમ કે મેમરી હિસ્સામાં, ડબલ અને સિંગલ લિંક કરેલી સૂચિ, હેશ કોષ્ટકો, ડાયનેમિક સ્ટ્રિંગ્સ અને સ્ટ્રિંગ ઉપયોગિતાઓ, જેમ કે લેક્સિકલ સ્કેનર, સ્ટ્રિંગ હિસ્સામાં (સ્ટ્રિંગ્સના જૂથો), ડાયનેમિક એરે, સંતુલિત દ્વિસંગી વૃક્ષો, એન-એરી વૃક્ષો, ક્વોર્ક (સ્ટ્રિંગનું દ્વિ-માર્ગીય જોડાણ અને અનન્ય પૂર્ણાંક ઓળખકર્તા), કીડ ડેટા સૂચિ, સંબંધો અને ટપલ્સ. કેશ મેમરી મેનેજમેન્ટ પ્રદાન કરે છે. જીએલઆઇબી એવા કાર્યોનો અમલ કરે છે જે થ્રેડો, થ્રેડ પ્રોગ્રામિંગ અને સંબંધિત સુવિધાઓ પ્રદાન કરે છે જેમ કે પ્રિમિટિવ વેરિયેબલ એક્સેસ, મ્યુટેક્સ, એસિંક્રોનસ કતારો, સુરક્ષિત મેમરી પુલ, મેસેજ પાસિંગ અને લોગિંગ, હૂક ફંક્શન્સ (કોલબેક રજિસ્ટ્રેશન) અને ટાઈમર. જીએલઆઈબીમાં બાઈટ ઓર્ડર રૂપાંતરણ અને આઈ/ઓ ચેનલો જેવી સંદેશ પસાર કરવાની સુવિધાઓનો પણ સમાવેશ થાય છે. જી. એલ. આઈ. બી. ની કેટલીક અન્ય વિશેષતાઓમાં નીચેનાનો સમાવેશ થાય છેઃ પ્રમાણભૂત મેક્રો ચેતવણીઓ અને દાવાઓ મોડ્યુલ ઘટકોનું ગતિશીલ લોડિંગ જી. એલ. આઈ. બી. પેકેજમાં પાંચ લાઈબ્રેરીઓનો સમાવેશ થતો હતો, પરંતુ તે બધાને એક લાઈબ્રેરીમાં ભેળવી દેવામાં આવ્યા હતા, ત્યારથી તેનું નામ ફક્ત જી. એલ. આઈ. બી. રાખવામાં આવ્યું હતું, અને હવે તે એકલ લાઈબ્રેરી તરીકે ટકી નથી. મૂળ લાઈબ્રેરીઓ આ પ્રમાણે હતીઃ ગોબજેક્ટ, એક ઓબ્જેક્ટ સિસ્ટમ જેમાં ટાઇપ સિસ્ટમ GType GLib GModue GThred GIO નો સમાવેશ થાય છે, તેમાંથી ત્રણ સ્રોત વૃક્ષની અલગ પેટા ડિરેક્ટરીઓમાં રહે છે, અને તેથી તેને અલગ ઘટકો તરીકે વિચારી શકાય છેઃ GLib, GObject, અને GIO. આને સોફ્ટવેર સ્ટેક તરીકે વિચારી શકાય છેઃ ગોબજેક્ટ જી. એલ. આઈ. બી. પર આધાર રાખે છે, અને જી. આઈ. ઓ. ઉચ્ચ-સ્તરની કાર્યક્ષમતા પ્રદાન કરે છે જે બંનેનો ઉપયોગ કરે છે. ઇતિહાસ GLib ની શરૂઆત GTK + પ્રોજેક્ટના ભાગ રૂપે થઈ હતી, જેને હવે GTK નામ આપવામાં આવ્યું છે. જો કે, GTK + વર્ઝન 2 રજૂ કરતા પહેલા, પ્રોજેક્ટના વિકાસકર્તાઓએ GTK + થી કોડને અલગ કરવાનું નક્કી કર્યું જે ગ્રાફિકલ યુઝર ઇન્ટરફેસો (GUI) માટે ન હતું, આમ GLib ને એક અલગ સોફ્ટવેર બંડલ તરીકે બનાવ્યું. GLib ને એક અલગ લાઈબ્રેરી તરીકે રજૂ કરવામાં આવ્યું હતું જેથી અન્ય વિકાસકર્તાઓ, જેઓ GTK + ના GUI-સંબંધિત ભાગોનો ઉપયોગ કરતા નથી, તેઓ સંપૂર્ણ GUI લાઈબ્રેરી પર આધાર રાખ્યા વિના લાઈબ્રેરીના બિન-GUI ભાગોનો ઉપયોગ કરી શકે. જી. એલ. આઈ. બી. એક ક્રોસ-પ્લેટફોર્મ લાઇબ્રેરી હોવાથી, ઓપરેટિંગ સિસ્ટમ સાથે ઇન્ટરફેસ કરવા માટે તેનો ઉપયોગ કરતી એપ્લિકેશનો સામાન્ય રીતે મોટા ફેરફારો વિના વિવિધ ઓપરેટિંગ સિસ્ટમ્સમાં પોર્ટેબલ હોય છે. રિલીઝ ગ્લિબનો સક્રિય વિકાસ થઈ રહ્યો છે. વર્તમાન ઝાંખી માટે https://gitlab.gnome.org/GNOME/glib/-/blob/main/NEWS જુઓ. નીચેનું કોષ્ટક 1998 થી 2022 સુધીની મુખ્ય પેચ નોંધોનું દસ્તાવેજીકરણ કરે છે. સમાન પ્રોજેક્ટ અન્ય લાઈબ્રેરીઓ નિમ્ન-સ્તરના કાર્યો અને ડેટા સ્ટ્રક્ચર્સના અમલીકરણ પ્રદાન કરે છે, જેમાં નીચેનાનો સમાવેશ થાય છેઃ માઈક્રોસોફ્ટ ફાઉન્ડેશન ક્લાસ લાઈબ્રેરી (એમએફસી)-સી-આધારિત વિન્ડોઝ એપીઆઈ માટે એક ઓબ્જેક્ટ-ઓરિએન્ટેડ સી + + રેપર લાઈબ્રેરી જેમાં કેટલાક ડેટા સ્ટ્રક્ચર્સ અને અન્ય સગવડ કાર્યક્ષમતાઓનો પણ સમાવેશ થાય છે સ્ટાન્ડર્ડ ટેમ્પલેટ લાઈબ્રેરી (એસટીએલ)-ડેટા સ્ટ્રક્ચર્સ અને અલ્ગોરિધમ્સ માટે સી + + લાઈબ્રેરી બુસ્ટ-સી + + માટે કેટલાક કાર્યો પ્રદાન કરે છે, જેમ કે થ્રેડિંગ પ્રિમિટિવ્સ, જે જીએલઆઈબી સી ક્યૂટીકોર માટે કરે છે તે સમાન છે-ક્યૂટી ફ્રેમવર્ક ડબલ્યુએક્સબેઝના કોર એપીઆઈ-ડબલ્યુએક્સવિડગેટ્સ લાઈબ્રેરીના નોન-જીયુઆઈ કાર્યો અપાચે પોર્ટેબલ રનટાઇમ અને એપલ કોર ફાઉન્ડેશન પાસે જીએલઆઈબી સાથે વિશાળ કાર્યાત્મક ઓવરલેપ