Contents
List of Vala Bindings
A Vala binding maps Vala syntax to the C code used in a library. It is often a single Vala API file (.vapi), but can also include a dependencies file (.deps). This page makes finding Vala bindings easier by listing bindings from various sources.
This page is a wiki page. A wiki is designed to be easily updated by its readers. So please help to keep the list up to date.
The first source of bindings is from upstream projects. If a project uses GLib with GObjects then a Vala binding can be generated automatically as part of the build process. The resulting VAPI file can be distributed with the project and ensures it is the most compatible with the project. For projects not using GObjects a manually written VAPI can be distributed. See the Upstream Guide for details on using either process in an upstream project.
The Vala project also includes a large number of bindings for projects that do not distribute the VAPI files. There is also a Vala Extra VAPIs repository that is used to distribute third party bindings. Finally there are various bindings written and hosted by individuals.
Each section has the same column headings to make it easy to move a binding from one section to another if its source category changes. The column headings are:
VAPI - the name of the VAPI file without the .vapi extension, this is the name used with the --pkg switch, e.g. valac --pkg example-1.0
- Upstream - name of the project and a link to the project's home page
- Description - short note on what the project is used for, often taken from the project's home page
Documentation - one or more links to documentation and tutorials, often to Valadoc.org
The wiki uses the MoinMoin syntax. A column is denoted with a double vertical bar, ||, so four columns would be || content of first || second || third || fourth ||. To split the content of a column cell over multiple lines use <<BR>>. Links are between double square brackets and the URL and link text are separated by a single vertical bar, e.g. [[http://valadoc.org|Valadoc.org]]
Distributed by Upstream Libraries
Many projects distribute Vala bindings either alongside of the libraries they bind or in a separate repository under the same umbrella project. This is generally considered to be preferable, for the reasons outlined in the Upstream Guide
VAPI |
Upstream |
Description |
Documentation |
libaccounts-glib |
Library for managing accounts which can be used from GLib applications. It is part of the accounts-sso project |
||
|
D-Bus interface for user account query and manipulation |
||
|
Library and indicator to take menus from applications and place them in the panel. |
|
|
|
A fast, simple, and powerful lo-fi game engine (renamed 'The Brick Engine' project) |
||
|
Lean, small and clean implementation of an ATA S.M.A.R.T. reading and parsing library. |
||
|
Dock-like bar which sits at the bottom of the screen. |
|
|
|
Implementation of the XDG Sound Theme and Name Specifications, for generating event sounds on free desktops, such as GNOME. |
||
|
Library providing a ClutterActor to display maps. It also provides a Gtk+ widget to display maps in Gtk+ applications. |
||
|
Makes color managed hardware work |
|
|
|
GLib-based CouchDB client library |
|
|
|
Low-level configuration system |
|
|
|
Library that uses DBus to provide objects allowing you to create Model-View-Controller type programs across DBus. |
||
|
Open source software for reading and writing Data Matrix barcodes. |
|
|
|
Responsible for managing calendar and addressbook information for Evolution. |
||
|
Library for bits of crypto UI and parsing etc. |
|
|
|
Aims to provide a free unified data access architecture to the GNOME project. |
|
|
|
A powerful general purpose text editor. |
|
|
gee-0.8 |
GObject collection library, note the 0.8 version of the API is newer than the 1.0 version |
||
|
Collection of components in GNOME that store secrets, passwords, keys, certificates and make them available to applications. Replaced by libsecret. |
||
|
GTK+ widgets for viewing and editing source code |
|
|
|
Word-processor-style highlighting and replacement of misspelled words in a GtkTextView widget |
|
|
|
Elegant, object-oriented open source framework for creating UPnP devices and control points |
||
|
Operating System information database |
||
|
Client library for Music Player Daemon |
|
|
|
Library handling all the details of proxy configuration |
|
|
A sound server for POSIX OSs with sound API and hardware abstraction. Enables software audio stream mixing, network transparency, volume control per application, and so on |
PulseAudio Developer Documentation |
||
|
Linux networking made easy |
|
|
|
Home media solution (UPnP AV MediaServer) that allows you to easily share audio, video and pictures to other devices. |
|
|
|
Render SVG files using cairo |
||
|
Library for storing and retrieving passwords and other secrets. It communicates with the "Secret Service" using DBus. Replaces GNOME Keyring. |
|
|
signon |
Library for managing single signon credentilas which can be used from GLib applications. It is effectively a GLib binding for the D-Bus API provided by signond |
||
|
Complete open source solution for interaction with virtualized desktop devices |
spice-client-glib-2.0, spice-client-gtk-3.0, spice-protocol, |
|
|
Compression abstraction library |
|
|
|
Flexible, modular communications framework that enables real-time communication via pluggable protocol backends |
||
|
Virtualization API |
||
|
search engine, search tool and metadata storage system |
|
|
|
VTE is a LGPL 2+ licensed library provising a virtual terminal emulator widget |
|
|
libxfce4util-1.0 |
Lightweight desktop environment for UNIX-like operating systems. |
Xfce4 Vala Bindings |
|
|
Provides high-level API for X Keyboard Extension known as XKB |
|
Distributed with Vala
VAPI |
Upstream |
Description |
Documentation |
ALSA (Advanced Linux Sound Architecture) provides audio and MIDI functionality to the Linux operating system and a user space library (alsa-lib) to simplify application programming and provide higher level functionality |
|||
atk |
|
|
|
avahi-gobject |
|
|
|
bzlib |
|
|
|
cairo |
|
|
|
ccss |
|
|
|
clutter |
|
|
|
clutter-gst |
|
|
|
cogl-1.0 |
An open source GPU graphics & utilities API. There are now Cogl 2.0 bindings - see under Sources - Individuals |
cogl-1.0 |
|
curses |
|
|
|
dbus-glib-1 |
|
|
|
dconf |
|
|
|
enchant |
|
|
|
fuse |
|
|
|
gconf-2.0 |
|
|
|
gdk-2.0 |
|
|
|
gdl-1.0 |
|
|
|
gdu |
|
|
|
gdu-gtk |
|
|
|
gedit-2.20 |
|
|
|
gio-2.0 |
|
|
|
gio-unix-2.0 |
|
|
|
glib-2.0 |
|
|
|
gmodule-2.0 |
|
|
|
gnet-2.0 |
|
|
|
gnome-desktop-2.0 |
|
|
|
gnome-keyring-1 |
|
|
|
gnome-vfs-2.0 |
|
|
|
gnutls |
|
|
|
gobject-2.0 |
|
|
|
goocanvas |
|
|
|
gsl |
|
|
|
gstreamer-0.10 |
|
|
|
gtk+-2.0 |
|
|
|
gtkmozembed |
|
|
|
gtksourceview-2.0 |
|
|
|
gudev-1.0 |
|
|
|
hal |
|
|
|
hildon-1 |
|
|
|
hildon-fm-2 |
|
|
|
json-glib-1.0 |
|
|
|
libbonoboui-2.0 |
|
|
|
libdaemon |
|
|
|
libepc-1.0 |
|
|
|
libesmtp |
|
|
|
libftdi |
|
|
|
libgda-4.0 |
|
|
|
libgdata |
|
|
|
libglade-2.0 |
|
|
|
libgnome-2.0 |
|
|
|
libgnome-menu |
|
|
|
libgnomeui-2.0 |
|
|
|
libgsf-1 |
|
|
|
libgvc |
|
|
|
libmagic |
|
|
|
libnl-1 |
|
|
|
libnl-2.0 |
|
|
|
libnotify |
|
|
|
liboobs-1 |
|
|
|
libosso |
|
|
|
libpanelapplet-2.0 |
|
|
|
libpq |
|
|
|
librsvg-2.0 |
|
|
|
libsexy |
|
|
|
libsoup |
|
|
|
libusb-1.0 |
|
|
|
libusb |
|
|
|
libwnck-1.0 |
|
|
|
libxml-2.0 |
|
|
|
linux |
|
|
|
loudmouth-1.0 |
|
|
|
lua |
|
|
|
mysql |
|
|
|
mx-1.0 |
|
|
|
orc-0.4 |
|
|
|
pangocairo |
|
|
|
pango |
|
|
|
poppler-glib |
|
|
|
posix |
|
|
|
purple |
|
|
|
raptor |
|
|
|
rasqal |
|
|
|
readline |
|
|
|
rest |
|
|
|
rest-extras |
|
|
|
sdl |
|
|
|
sqlite3 |
|
|
|
taglib_c |
|
|
|
tiff |
|
|
|
tokyocabinet |
|
|
|
tracker-indexer-module-1.0 |
|
|
|
twitter-glib-1.0 |
|
|
|
unique-1.0 |
|
|
|
v4l2 |
|
|
|
vala-1.0 |
|
|
|
vte |
|
|
|
webkit-1.0 |
|
|
|
x11 |
|
|
|
xcb |
|
|
|
zlib |
|
|
|
"vala-extra-vapis" Git Repository
There is a git repository for external bindings, "vala-extra-vapis", which you are strongly encouraged to use to distribute third-party bindings. For an explanation of this repository, please see the annoucement sent to vala-list, as well as the README included in the repository. If you would like to submit bindings to this repository, please use the "Bindings: Extra" component in Vala's issue tracker or the GitHub issue tracker.
The following bindings are included in the repository:
VAPI |
Upstream |
Description |
Documentation |
Tool designed for the extraction of annotations from audio signals |
|
||
Configuration editing tool |
|
||
Helpers for drawing with cairo onto SDL surfaces. |
|
||
Couchbase NoSQL database |
|
||
CPU frequency scaling in the Linux 2.6 kernels. |
|
||
Common Unix Printing System |
|
||
Tool for transferring data with URL syntax |
|
||
The Fast Common Gateway Interface protocol for interfacing applications with web servers |
FastCGI: A High-Performance Web Server Interface |
||
General purpose cryptographic library |
|
||
Royalty-free, cross-platform API for full-function 2D and 3D graphics on embedded systems |
|
||
Multi-platform library for creating windows with OpenGL contexts and managing input and events. |
|
||
High-Level Crypto API for encryption, decryption, signing, signature verification and key management. |
|
||
Fast Fourier Transform based up on the principle, "Keep It Simple, Stupid." |
|
||
Fast and lightweight key/value database library by Google |
|
||
Event notification library |
|
||
Library for recognizing the type of data contained in a file. |
|
||
Discount's C library implementation of the Markdown text to HTML converter |
|||
Library to parse and evaluate symbolic expressions input as text |
|
||
an open source C/C++ client library and tools for the memcached server |
|
||
Regular expressions library. |
|
||
Open Source Computer Vision Library |
|
||
High performance, lightweight messaging library |
|
||
RabbitMQ client |
|
||
Single-reader single-writer lock-free ring buffer for PortAudio |
|
||
Free, cross-platform, open-source, audio I/O library. |
|
||
Real-time input and output of MIDI data using a system-independent interface. |
|
||
Library for password quality checking and generating random passwords. |
|
||
Sample Rate Converter for audio |
|
||
SANE stands for "Scanner Access Now Easy" and is an application programming interface (API) that provides standardized access to any raster image scanner hardware (flatbed scanner, hand-held scanner, video- and still-cameras, frame-grabbers, etc.) |
|
||
GNU SASL Library |
|
||
sdl2 |
Simple DirectMedia Layer (SDL). Cross-platform development C library designed to provide low level access to audio, keyboard, mouse, joystick, and graphics hardware (v2) |
||
Linux hardware monitoring |
|
||
Cross-platform library to use serial ports |
|
||
Fast compressor/decompressor |
|
||
Library for reading and writing files containing sampled sound |
|
||
String processing language designed for creating stemming algorithms for use in Information Retrieval. |
|
||
Library for working with systemd's 128-bit identifiers |
|
||
systemd journal |
|
||
Tiny C Compiler |
|
||
Universal charset detection library |
|
||
libuuid |
Universally unique identifiers |
|
Other Sources
Individuals
Some other bindings are not distributed with Vala, the libraries they bind, or the vala-extra-vapis repository:
VAPI |
Upstream |
Description |
Documentation |
A high-performance 2D rigid body physics library |
|
||
cogl-2.0 |
An open source GPU graphics & utilities API |
||
eflvala |
Libraries for Enlightenment, a lean next generation graphical desktop shell. The git repository linked to has the last commit in 2010. The SHR Project has files used in its build process for eflvala timestamped 2012. A mailing list message from March 2014 advises the bindings need work. Anyone wanting to work on these bindings should ideally be looking to get them included in the enlightenment.org git repository along side the C++, Javascript, Python and Ruby bindings already there |
|
|
Portable Foreign Function Interface Library |
|
||
Library of database functions that use extensible hashing and work similar to the standard UNIX dbm |
|
||
Linkable library for git |
|
||
Alternative OpenGL bindings based on a GIR generated from the OpenGL spec. |
Vala and Modern OpenGL - recommends COGL |
||
Cross-platform API for writing applications that produce 2D and 3D computer graphics. |
|
||
OpenGL extension to GTK+ 2.0. |
|
||
A set of functions to create texture mipmaps from a base image, map coordinates between screen and object space, and draw quadric surfaces and NURBS. |
|
||
A window system independent toolkit for writing OpenGL programs. |
|
||
Manage OpenGL interaction with the X Window System and to encode OpenGL onto the X protocol stream for remote rendering. |
|
||
Implementation of the Open Sound Control protocol for POSIX systems |
|
||
Collection of modular and reusable compiler and toolchain technologies. |
|
||
Library and interpreter, dynamically bridging (through GObjectIntrospection) the WebKit JavaScriptCore engine |
|
||
Free multimedia C++ API that provides you low and high level access to graphics, input, audio, etc. |
|
||
Music player |
|
||
Royalty-free, cross-platform API that provides comprehensive streaming media codec and application portability by enabling accelerated multimedia components to be developed, integrated and programmed across multiple operating systems and silicon platforms. |
|
||
Infinote is the name for the protocol replacing obby in Gobby 0.5.0 |
|
||
High-performance asynchronous messaging library aimed at use in scalable distributed or concurrent applications. |
|
||
Transimission BitTorrent client |
|
||
Just-In-Time Compiler for Lua. |
|
||
Dynamic, open source programming language. |
|
||
JSON-RPC implementation in glib |
|
||
LV2 is a portable plugin standard for audio systems |
|
||
Lightweight C library for loading and wrapping LV2 plugin UIs. |
|
||
|
|
|
|
Free and open source cross-platform multimedia player and framework |
Deprecated or Obsolete Libraries
VAPI |
Upstream |
Description |
Documentation |
|
RAD tool to enable quick & easy development of user interfaces. Replaced by Gtk.Builder |
||
|
Word-processor-style highlighting and replacement of misspelled words in a GtkTextView widget. Replaced by GtkSpell 3 |
|
Lost Bindings
Some bindings have seemingly vanished from the internet. They are listed here in hopes that someone might have a copy:
VAPI |
Upstream |
Description |
Documentation |
|
gtksourcecompletion-1.0 |
Completion library for GtkTextView component. Deprecated in favor of gtksourceview-3.0 |
|
|
ige-mac-integration |
Mac OS X GTK+ Integration |
|
|
libowl-av |
Audio/Video widget library |
|
|
libgconf-bridge |
GConf-GObject bridging library. Use GLib.Settings instead? |
|
|
libguniqueapp |
A Library for GNOME Single-Instance Applications. Deprecated for libunique which was, in turn, deprecated for GLib.Application and Gtk.Application |
|
|
libindicate |
Ubuntu's library for creating and manipulating panel indicators |
|
|
midgard2 |
Open Source Content Repository |
|
expat |
XML parsing library |
|