Valadoc.org

Guides & References

Vala - Introduction

Vala Programming - Tutorial

Vala for C# Programmers by GNOME

Gtk+ Kick-Start Tutorial for Vala by Alberto Ruiz

Vala Language Introduction by Andre Masella

Creating elementary OS apps with GTK & Vala

Learn Vala and Gtk+ from Scratch (Playlist)


Packages

Submitting API-Bugs and Patches

For all bindings where the status is not marked as external, and unless otherwise noted, bugs and pull-requests should be submitted to the Vala product in the GNOME GitLab instance.

Projects without VAPI files

Most GObject-instrospected projects are shipping their own bindings and Vala also ships with many of them. For many non-GObject introspected libraries, a repository is available in the vala-extra-vapis project in the GNOME GitLab instance.


GNOME & Friends

Core

gee-0.8

Libgee is a collection library providing GObject-based interfaces and classes for commonly used data structures.

gio-2.0

GIO provides a modern and easy-to-use VFS API. It provides a file system abstraction which allows applications to access local and remote files with a single consistent API.

gio-unix-2.0

UNIX-specific file abstractions for GIO.

glib-2.0

GLib provides the core application building blocks for libraries and applications written in C. It provides the core object system used in GNOME, the main loop implementation, and a large set of utility functions for strings and common data structures.

gmodule-2.0

Portable method for dynamically loading 'plug-ins'

gobject-2.0

GObject provides the object system used for Pango and GTK+.

libpeas-1.0

libpeas is a gobject-based plugins engine, and is targetted at giving every application the chance to assume its own extensibility.

libpeas-2

libpeas is a gobject-based plugins engine, and is targetted at giving every application the chance to assume its own extensibility.

User Interface

clutter-1.0

Clutter is a GObject based library for creating fast, visually rich, graphical user interfaces.

gegl-gtk3-0.1

Utility library for using GEGL in GTK+ 3 based applications

goocanvas-2.0

GooCanvas is a canvas widget for GTK+ that uses the cairo 2D library for drawing.

gtk+-3.0

GTK+ is the primary library used to construct user interfaces in GNOME applications. It provides user interface controls and signal callbacks to control user interfaces.

gtk4

GTK is the primary library used to construct user interfaces in GNOME applications. It provides user interface controls and signal callbacks to control user interfaces.

gtksourceview-3.0

GtkSourceView is a portable C library that extends the standard GTK+ framework for multiline text editing with support for configurable syntax highlighting, unlimited undo/redo, search and replace, a completion framework, printing and other features typical of a source code editor.

gtksourceview-4

GtkSourceView is a GNOME library that extends GtkTextView, the standard GTK+ widget for multiline text editing. GtkSourceView adds support for syntax highlighting, undo/redo, file loading and saving, search and replace, a completion system, printing, displaying line numbers, and other features typical of a source code editor.

gtksourceview-5

GtkSourceView is a GNOME library that extends GtkTextView, the standard GTK+ widget for multiline text editing. GtkSourceView adds support for syntax highlighting, undo/redo, file loading and saving, search and replace, a completion system, printing, displaying line numbers, and other features typical of a source code editor.

javascriptcoregtk-4.0

WebKitGTK+ is a full-featured port of the WebKit rendering engine, suitable for projects requiring any kind of web integration, from hybrid HTML/CSS applications to full-fledged web browsers. This is the library to use to acces JavaScript from WebKitGTK.

javascriptcoregtk-4.1

WebKitGTK+ is a full-featured port of the WebKit rendering engine, suitable for projects requiring any kind of web integration, from hybrid HTML/CSS applications to full-fledged web browsers. This is the library to use to acces JavaScript from WebKitGTK.

javascriptcoregtk-6.0

WebKitGTK+ is a full-featured port of the WebKit rendering engine, suitable for projects requiring any kind of web integration, from hybrid HTML/CSS applications to full-fledged web browsers. This is the library to use to acces JavaScript from WebKitGTK.

libadwaita-1

Building blocks for modern GNOME applications

libdazzle-1.0

The libdazzle library is a companion library to GObject and Gtk+. It provides various features that we wish were in the underlying library but cannot for various reasons. In most cases, they are wildly out of scope for those libraries. In other cases, our design isn't quite generic enough to work for everyone.

libgda-ui-5.0

Libgda is a (relatively small) database access library. This package provides GTK+ widgets to database access.

libgnome-menu-3.0

Utility library for loading .desktop files.

libhandy-0.0

A library full of GTK+ widgets for mobile phones

libhandy-1

Building blocks for modern adaptive GNOME apps

libpeas-gtk-1.0

A GObject-based plugins engine

shumate-1.0

Shumate is a library providing a widget to display maps in applications.

vte-2.91

Terminal emulator widget used by GNOME terminal.

webkit2gtk-4.0

WebKitGTK+ is a full-featured port of the WebKit rendering engine, suitable for projects requiring any kind of web integration, from hybrid HTML/CSS applications to full-fledged web browsers.

webkit2gtk-4.1

WebKitGTK+ is a full-featured port of the WebKit rendering engine, suitable for projects requiring any kind of web integration, from hybrid HTML/CSS applications to full-fledged web browsers.

webkit2gtk-web-extension-4.0

WebKitGTK+ is a full-featured port of the WebKit rendering engine, suitable for projects requiring any kind of web integration, from hybrid HTML/CSS applications to full-fledged web browsers. This is the library to use to build extensions running in the separated webprocess.

webkit2gtk-web-extension-4.1

WebKitGTK+ is a full-featured port of the WebKit rendering engine, suitable for projects requiring any kind of web integration, from hybrid HTML/CSS applications to full-fledged web browsers. This is the library to use to build extensions running in the separated webprocess.

webkitgtk-6.0

WebKitGTK+ is a full-featured port of the WebKit rendering engine, suitable for projects requiring any kind of web integration, from hybrid HTML/CSS applications to full-fledged web browsers.

webkitgtk-web-extension-6.0

WebKitGTK+ is a full-featured port of the WebKit rendering engine, suitable for projects requiring any kind of web integration, from hybrid HTML/CSS applications to full-fledged web browsers. This is the library to use to build extensions running in the separated webprocess.

Multimedia

babl-0.1

babl is pixel encoding and color space conversion engine in C. It allows converting between different methods of storing pixels known as pixel formats that have with different bitdepths and other data representations, color models, color spaces and component permutations. A vocabulary to formulate new pixel formats from existing primitives is provided as well as the framework to add new color models, spaces and data types.

clutter-gst-3.0

GStreamer bindings for clutter.

gegl-0.3

GEGL (Generic Graphics Library) is a data flow based image processing framework, providing floating point processing and non-destructive image processing capabilities to GNU Image Manipulation Program and other projects (imgflo, GNOME Photos, gcut, iconographer, …)

gegl-0.4

GEGL (Generic Graphics Library) is a data flow based image processing framework, providing floating point processing and non-destructive image processing capabilities to GNU Image Manipulation Program and other projects (imgflo, GNOME Photos, gcut, iconographer, …)

gexiv2

gexiv2 is a GObject wrapper around the Exiv2 photo metadata library. It allows for GNOME applications to easily inspect and update EXIF, IPTC, and XMP metadata in photo and video files of various formats

grilo-0.3

Framework that provides access to various sources of multimedia content

grilo-net-0.3

Network classes for Grilo

gssdp-1.0

GObject-based API for handling resource discovery and announcement over SSDP.

gst-editing-services-1.0

The GStreamer Editing Services (GES) aims to fill the gap between GStreamer/NLE and the application developer by offering a series of classes to simplify the creation of many kind of editing-related applications.

gstreamer-1.0

Powerful framework for creating multimedia applications. Supports both Audio and Video.

gstreamer-allocators-1.0

GStreamer Allocators Library

gstreamer-base-1.0

GStreamer Multimedia Framework Base plugin libraries.

gstreamer-check-1.0

GStreamer Check Unit Testing

gstreamer-controller-1.0

GStreamer Dynamic Parameter Control

gstreamer-net-1.0

GStreamer Network Classes

gstreamer-pbutils-1.0

General Application and Plugin Utility Library

gstreamer-rtsp-server-1.0

GStreamer RTSP Server-Library

gstreamer-tag-1.0

GStreamer Tag Support Library

gstreamer-video-1.0

Support library for video operations

gupnp-1.0

Core UPnP API built on top of gssdp

gupnp-av-1.0

Small utility library that aims to ease the handling and implementation of UPnP audio/video profiles

gupnp-dlna-2.0

GUPnP DLNA is a set of utility APIs to simplify DLNA-specific bits of MediaServer implementations, such as DLNA media profile guessing.

gupnp-dlna-gst-2.0

GStreamer integration for GUPnP DLNA

libcanberra

A small and lightweight implementation of the XDG Sound Theme Specification.

libcanberra-gtk

Libcanberra-gtk provides a few functions that simplify libcanberra usage from Gtk+.

rygel-core-2.6

Librygel-core is a collection of classes useful to Rygel's server and renderer implementation libraries and useful to plugin implementors.

rygel-db-2.6

This library implements a generic database abstraction used by rygel and rygel plugins

rygel-renderer-2.6

This library may be used to create UPnP or DLNA Renderers. For instance, librygel-renderer-gst uses librygel-renderer with GStreamer to implement its RygelPlaybinRenderer renderer.

rygel-renderer-gst-2.6

This library may be used to create UPnP or DLNA Renderers using GStreamer. The RygelPlaybinRenderer may wrap an existing GStreamer playbin or create its own. See the example.

rygel-ruih-2.0

This library implements the Remote User Interface Server protocol interfaces.

rygel-server-2.6

This library may be used to create UPnP or DLNA servers, Rygel Server plugins or Rygel Media Engines

Under the Hood

atk

ATK provides the set of accessibility interfaces that are implemented by other toolkits and applications. Using the ATK interfaces, accessibility tools have full access to view and control running applications.

atspi-2

AT-SPI2 is a D-Bus based accessibility framework. It defines a D-Bus protocol for providing and accessing application accessibility information. The project includes a library for bridging the D-Bus protocol to the ATK API, allowing Gtk based applications to be made accessible.

cairo

Cairo is a 2D graphics library with support for multiple output devices like the X Window System (via both Xlib and XCB), Quartz, Win32, image buffers, PostScript, PDF, and SVG.

cogl-1.0

COGL is a low level OpenGL abstraction library developed for (and part of) Clutter. It is used primarily by Clutter to provide a common rendering API that works transparently across OpenGL >=1.4, OpenGL ES 1.1 and OpenGL ES 2.0.

cogl-pango-1.0

Binding for the CoglPango 1.0 library.

gdk-3.0

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

gdk-pixbuf-2.0

GdkPixbuf is a library for image loading and manipulation. The GdkPixbuf documentation contains both the programmer's guide and the API reference.

gdk-x11-3.0

X backend-specific API for gdk.

graphene-gobject-1.0

A thin layer of types for graphic libraries

gtk4-wayland

Wayland backend-specific API for gdk4.

gtk4-x11

X11 backend-specific API for gdk4.

ibus-1.0

Next Generation Input Bus for Linux.

librsvg-2.0

Library for rendering of SVG vector graphics.

pango

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

pangocairo

Rendering with the Cairo backend.

Data Storage

camel-1.2

Camel is a generic messaging library. It supports the standard messaging system for receiving and sending messages. It is the messaging backend for Evolution.

folks

Libfolks is a library that aggregates people from multiple sources (eg, Telepathy connection managers and eventually evolution data server, Facebook, etc.) to create metacontacts.

folks-eds

Folks, eds-backend

folks-telepathy

Folks, telepathy-backend

gcalc-1

GNOME Calculator's library to parse and evaluate math expressions

libaccounts-glib

Accounts management library for online services.

libebook-1.2

This package is a client library for evolution addressbooks.