Glib Feature List

GLib Fundamentals

Version Information — variables and functions to check the GLib version
Basic Types — standard GLib types, defined for ease-of-use and portability
Standard Macros — commonly-used macros
Type Conversion Macros — portably storing integers in pointer variables
Byte Order Macros — a portable way to convert between different byte orders
Numerical Definitions — mathematical constants, and floating point decomposition
Miscellaneous Macros — specialized macros which are not used often
Atomic Operations — basic atomic integer and pointer operations

GLib Core Application Support

The Main Event Loop — manages all available sources of events
Threads — portable support for threads, mutexes, locks, conditions and thread private data
Thread Pools — pools of threads to execute work concurrently
Asynchronous Queues — asynchronous communication between threads
Dynamic Loading of Modules — portable method for dynamically loading 'plug-ins'
Memory Allocation — general memory-handling
Memory Slices — efficient way to allocate groups of equal-sized chunks of memory
IO Channels — portable support for using files, pipes and sockets
Error Reporting — a system for reporting errors
Message Output and Debugging Functions — functions to output messages and help debug applications
Message Logging — versatile support for logging messages with different levels of importance

GLib Utilities

String Utility Functions — various string-related functions
Character Set Conversion — convert strings between different character sets
Unicode Manipulation — functions operating on Unicode characters and UTF-8 strings
Base64 Encoding — encodes and decodes data in Base64 format
Data Checksums — computes the checksum for data
Secure HMAC Digests — computes the HMAC for data
Internationalization — gettext support macros
Date and Time Functions — calendrical calculations and miscellaneous time stuff
GTimeZone — a structure representing a time zone
GDateTime — a structure representing Date and Time
Random Numbers — pseudo-random number generator
Hook Functions — support for manipulating lists of hook functions
Miscellaneous Utility Functions — a selection of portable utility functions
Lexical Scanner — a general purpose lexical scanner
Timers — keep track of elapsed time
Spawning Processes — process launching
File Utilities — various file-related functions
URI Functions — manipulating URIs
Hostname Utilities — Internet hostname utilities
Shell-related Utilities — shell-like commandline handling
Commandline option parser — parses commandline options
Glob-style pattern matching — matches strings against patterns containing '*' (wildcard) and '?' (joker)
Perl-compatible regular expressions — matches strings against regular expressions
Regular expression syntax — syntax and semantics of regular expressions supported by GRegex
Simple XML Subset Parser — parses a subset of XML
Key-value file parser — parses .ini-like config files
Bookmark file parser — parses files containing bookmarks
Testing — a test framework
UNIX-specific utilities and integration — pipes, signal handling
Windows Compatibility Functions — UNIX emulation on Windows

GLib Data Types

Doubly-Linked Lists — linked lists that can be iterated over in both directions
Singly-Linked Lists — linked lists that can be iterated in one direction
Double-ended Queues — double-ended queue data structure
Sequences — scalable lists
Trash Stacks — maintain a stack of unused allocated memory chunks
Hash Tables — associations between keys and values so that given a key the value can be found quickly
Strings — text buffers which grow automatically as text is added
String Chunks — efficient storage of groups of strings
Arrays — arrays of arbitrary elements which grow automatically as elements are added
Pointer Arrays — arrays of pointers to any type of data, which grow automatically as new elements are added
Byte Arrays — arrays of bytes
Balanced Binary Trees — a sorted collection of key/value pairs optimized for searching and traversing in order
N-ary Trees — trees of data with any number of branches
Quarks — a 2-way association between a string and a unique integer identifier
Keyed Data Lists — lists of data elements which are accessible by a string or GQuark identifier
Datasets — associate groups of data elements with particular memory locations
GVariantType — introduction to the GVariant type system
GVariant — strongly typed value datatype
GVariant Format Strings — varargs conversion of GVariants
GVariant Text Format — textual representation of GVariants

Deprecated APIs

Deprecated thread API — old thread APIs (for reference only)
Caches — caches allow sharing of complex data structures to save resources
Relations and Tuples — tables of data which can be indexed on any number of fields
Automatic String Completion — support for automatic completion using a group of target strings

GLib Tools

glib-gettextize — gettext internationalization utility
gtester — test running utility
gtester-report — test report formatting utility