About my projects, examples and tutorials

Api 2 distribution references

Here you can select a distribution from the side bar. The distributions have the following uses (according to the developers site of Gnome):

  • Gnome::Gtk4; The GUI toolkit, containing UI elements, layout managers, data storage types for efficient use in GUI applications, and much more.
  • Gnome::Gdk4; GDK is the abstraction layer that allows GTK to support multiple windowing systems. GDK provides window system facilities on Wayland, X11, Microsoft Windows, and Apple macOS.
  • Gnome::Gsk4; GSK is an API for creating a scene graph from drawing operation, called “nodes”, and rendering it using different backends. GSK provides renderers for OpenGL, Vulkan and Cairo.  
  • Gnome::GdkPixbuf; An image loading library which is used by GTK. For simple loading and display of images, GTK can typically be used on its own. However, gdk-pixbuf does provide useful functionality for operating on images as pixel buffers, such as changing colors or creating composites from multiple images, and saving the result.
  • Gnome::Graphene; A small library which provides vector and matrix datatypes and operations. Graphene provides optimized implementations using various SIMD instruction sets such as SSE and ARM NEON.  
  • Gnome::Gio; A modern, easy-to-use VFS API including abstractions for files, drives, volumes, stream IO, as well as network programming and IPC though DBus.
  • Gnome::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.
  • Gnome::GObject; A library that provides a type system, a collection of fundamental types including an object type, and a signal system.  
  • Gnome::Pango; A text layout library. It plays an important role in internationalization, has full Unicode support, and supports a range of writing systems. Pango APIs are exposed through GTK and can be used for things like setting text as bold or italic.  
  • Gnome::N; Low level modules to connect to the native libraries and provide the low level Gnome types.

Ideas for later, if ever, are implementing;

  • A GUI Interface testing environment
  • Gtk3 and Gdk3;
  • ADW; Libadwaita supplements GTK with additional widgets and classes. It is used to implement the standard GNOME design patterns as documented in the GNOME Human Interface Guidelines.
  • WebKitGTK; WebKitGTK allows adding web functionality to applications, such as HTML rendering and embedded web views.
  • librsvg; librsvg is a library that renders Scalable Vector Graphics (SVG). It can be used to display static SVG assets from GTK and gdk-pixbuf, or to render SVG documents to Cairo surfaces in general.
  • glycin; Glycin allows to decode images into GdkTextures and to extract image metadata. The image decoding happens in sandboxed, modular image loaders.
  • Avahi; Avahi implements Zeroconf Networking. It allows programs to discover services like printers on local networks without prior configuration. It also allows applications to set up services that are reachable through the local network without configuration; for example, a chat program that “finds” other chat users in a LAN without having to set up a central chat server first.