GTK provides, directly or through various dependencies, a full platform for application development.

You can browse the latest available documentation online.

You can find guides and tutorials on the GNOME developer documentation website.

User interface and display

  • GTK — Widget toolkit for graphical interfaces
  • GDK — Low-level abstraction for the windowing system
  • GSK — Low-level scene graph and 3D rendering API
  • Pango — International text rendering with full Unicode support
  • Cairo — 2D, vector-based drawing for high-quality graphics
  • ATK — Accessibility toolkit to implement support for screen readers and other tools (GTK3 only)

Storage of the user’s data

  • GSettings — Configuration storage for application preferences

File access

  • GFile — File and URI handling, asynchronous file operations, volume handling


  • GNetworking — Networking and sockets API with streams
  • Soup — Asynchronous HTTP library with cookies, SSL, and XML-RPC


  • GStreamer — Playing, mixing, and manipulating sound and video
  • GdkPixbuf — Loading icons and other graphical assets

Inter-process communication

  • D-Bus — Inter-process communication bus to provide APIs to other processes
  • Polkit — Access control for system-level services provided through D-Bus

Asynchronous tasks

  • GTask – Cancellable synchronous or asynchronous task and result

Application support

Foundational C utilities and object system

  • GLib — Data structures and utilities for C programs
  • GObject — C-based object and type system with signals and slots
Observed a typo or some missing information, edit this page.
Read on how to contribute to this website.