Jump to content
 







Main menu
   


Navigation  



Main page
Contents
Current events
Random article
About Wikipedia
Contact us
Donate
 




Contribute  



Help
Learn to edit
Community portal
Recent changes
Upload file
 








Search  

































Create account

Log in
 









Create account
 Log in
 




Pages for logged out editors learn more  



Contributions
Talk
 



















Contents

   



(Top)
 


1 Features  



1.1  Components  







2 History  



2.1  Releases  







3 Similar projects  





4 References  





5 External links  














GLib






العربية
Català
Čeština
Deutsch
Español
فارسی
Français

Italiano

Polski
Português
Русский
Українська

 

Edit links
 









Article
Talk
 

















Read
Edit
View history
 








Tools
   


Actions  



Read
Edit
View history
 




General  



What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Cite this page
Get shortened URL
Download QR code
Wikidata item
 




Print/export  



Download as PDF
Printable version
 
















Appearance
   

 






From Wikipedia, the free encyclopedia
 


GLib
Original author(s)Shawn Amundson
Developer(s)The GNOME Project et al.
Initial release1998; 26 years ago (1998)
Stable release

2.81.0[1] Edit this on Wikidata / 28 June 2024; 3 days ago (28 June 2024)

Repository
Written inC
Operating systemLinux, Unix-like, macOS, Windows
PlatformCross-platform
TypeLibrary
LicenseLGPLv2.1
Websitewww.gtk.org
Simplified software architecture of GTK, Pango, GDK, ATK, GIO, Cairo and GLib.

GLib is a bundle of three (formerly five) low-level system libraries written in C and developed mainly by GNOME. GLib's code was separated from GTK, so it can be used by software other than GNOME and has been developed in parallel ever since.

The name "GLib" originates from the project's start as a GTK C utility library.

Features[edit]

GLib provides advanced data structures, such as memory chunks, doubly and singly linked lists, hash tables, dynamic strings and string utilities, such as a lexical scanner, string chunks (groups of strings), dynamic arrays, balanced binary trees, N-ary trees, quarks (a two-way association of a string and a unique integer identifier), keyed data lists, relations, and tuples. Caches provide memory management.

GLib implements functions that provide threads, thread programming and related facilities such as primitive variable access, mutexes, asynchronous queues, secure memory pools, message passing and logging, hook functions (callback registering) and timers. GLib also includes message passing facilities such as byte order conversion and I/O channels.

Some other features of GLib include:

Components[edit]

The GLib package consisted of five libraries, but they were all merged into one library, since then named simply GLib, and are no longer sustained as standalone libraries. The original libraries were:

Of these, three continue to reside in distinct subdirectories of the source tree, and so can be thought of as discrete components: GLib, GObject, and GIO. These can be thought of as a software stack: GObject relies on GLib, and GIO provides higher-level functionality that uses both.

History[edit]

GLib began as part of the GTK+ project, now named GTK. However, before releasing GTK+ version 2, the project's developers decided to separate code from GTK+ that was not for graphical user interfaces (GUIs), thus creating GLib as a separate software bundle. GLib was released as a separate library so other developers, those not using the GUI-related parts of GTK+, could use the non-GUI parts of the library without the overhead of depending on the full GUI library.

Since GLib is a cross-platform library, applications using it to interface with the operating system are usually portable across different operating systems without major changes.[2]

Releases[edit]

Glib is undergoing active development. For a current overview see https://gitlab.gnome.org/GNOME/glib/-/blob/main/NEWS. The table below documents major patch notes from 1998 to 2022.

Release series Initial
release date
Major enhancements
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 property bindings (GAtomic for refcounting)
2.30 2011-09-26 Non-unique GApplications, use eventfd() for mainloop wakeup, GHashTable set optimization, GObject data scalability
2.32 2012-03-24 Plans for GLib 2.32
2.34 2012-09-23 What's New for Developers in GLib 2.34
2.36 2013-03-25
2.38 2013-09-23 applications launched using D-Bus activation[3] GSubprocess, Unicode 6.3 (released September 2013)
2.40 2014-03-24 GNotification, System notification API[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

Similar projects[edit]

Other libraries provide low-level functions and implementations of data structures, including:

References[edit]

  1. ^ "2.81.0 · GNOME / GLib · GitLab". Retrieved 28 June 2024.
  • ^ Krause, Andrew (2007). Foundations of GTK+ Development. Expert's Voice in Open Source. Apress. p. 5. ISBN 978-1-59059-793-4. Retrieved 3 April 2013. [GLib] provides a cross-platform interface that allows your code to be run on any of its supported operating systems with little to no rewriting of code!
  • ^ "Setting up an application for D-Bus Launching".
  • ^ "GNotification".
  • External links[edit]


    Retrieved from "https://en.wikipedia.org/w/index.php?title=GLib&oldid=1225006643"

    Categories: 
    GLib
    C (programming language) libraries
    Free computer libraries
    Free software programmed in C
    GNOME libraries
    GTK
    Software using the LGPL license
    Hidden categories: 
    Articles with short description
    Short description matches Wikidata
    Articles needing additional references from July 2019
    All articles needing additional references
     



    This page was last edited on 21 May 2024, at 19:55 (UTC).

    Text is available under the Creative Commons Attribution-ShareAlike License 4.0; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.



    Privacy policy

    About Wikipedia

    Disclaimers

    Contact Wikipedia

    Code of Conduct

    Developers

    Statistics

    Cookie statement

    Mobile view



    Wikimedia Foundation
    Powered by MediaWiki