# GTK Documentation

#### User interface

##### GTK

GTK is the primary library used to construct user interfaces. It provides user interface controls and signal callbacks to respond to user actions.

GTK API reference

##### GSK

An intermediate layer which provides a rendering API implemented using Cairo, OpenGL or Vulkan.

GSK API reference

##### GDK

An intermediate layer which isolates GTK from the details of the windowing system.

GDK API reference

##### Pango

Pango is the core text and font handling library used in GTK applications. It has extensive support for the different writing systems used throughout the world.

Pango API reference

##### GdkPixbuf

GdkPixbuf is a library for image loading and manipulation.

GdkPixbuf API reference

##### Cairo

Cairo is a 2D graphics library with support for multiple output devices. It is designed to produce consistent, high quality output on all media.

Cairo API reference

#### Core libraries

##### GLib

GLib provides the core application building blocks for libraries and applications written in C. It provides common data types used in GTK, the main loop implementation, and a large set of utility functions for strings and general portability across different platforms.

GLib API reference

##### GObject

GObject provides the object system used by GTK.

GObject API reference

##### GIO

GIO provides a portable, modern and easy-to-use file system abstraction API for accessing local and remote files; a set of low and high level abstractions over the DBus IPC specification; an application settings API; portable networking abstractions; and additional utilities for writing asynchronous operations without blocking the user interface of your application.

GIO API reference