GTK is a library for creating graphical user interfaces. It works on many UNIX-like platforms, Windows, and OS X. GTK is released under the GNU Library General Public License (GNU LGPL), which allows for flexible licensing of client applications. GTK has a C-based object-oriented architecture that allows for maximum flexibility. Bindings for many other languages have been written, including C++, Objective-C, Guile/Scheme, Perl, Python, TOM, Ada95, Free Pascal, and Eiffel.

GTK depends on the following libraries:

GLib

  A general-purpose utility library, not specific to graphical user interfaces. GLib provides many useful data types, macros, type conversions, string utilities, file utilities, a main loop abstraction, and so on.

GObject

  A library that provides a type system, a collection of fundamental types including an object type, a signal system.

GIO

  A modern, easy-to-use VFS API including abstractions for files, drives, volumes, stream IO, as well as network programming and DBus communication.

cairo

  Cairo is a 2D graphics library with support for multiple output devices.

Pango

  Pango is a library for internationalized text handling. It centers around the PangoLayout object, representing a paragraph of text. Pango provides the engine for GtkTextView, GtkLabel, GtkEntry, and other widgets that display text.

ATK

  ATK is the Accessibility Toolkit. It provides a set of generic interfaces allowing accessibility technologies to interact with a graphical user interface. For example, a screen reader uses ATK to discover the text in an interface and read it to blind users. GTK widgets have built-in support for accessibility using the ATK framework.

GdkPixbuf

  This is a small library which allows you to create GdkPixbuf ("pixel buffer") objects from image data or image files. Use a GdkPixbuf in combination with GtkImage to display images.

graphene

  This is a small library which provides vector and matrix datatypes and operations. graphene provides optimized implementations using various SIMD instruction sets such as SSE.

GDK

  GDK is the abstraction layer that allows GTK to support multiple windowing systems. GDK provides window system facilities on Wayland, X11, Windows, and OS X.

GSK

  GSK is a library for creating a scene graph from render nodes, and rendering it using different rendering APIs. GSK provides renderers for OpenGL, Vulkan and cairo.

GTK

  The GTK library itself contains widgets, that is, GUI components such as GtkButton or GtkTextView.