- 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
- Reference counting — Reference counting types and functions
- Reference counted data — Allocated memory with reference counting semantics
- Atomically reference counted data — Allocated memory with atomic reference counting semantics
- Reference counted strings — Strings with reference counted memory management