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
(auto-generated)

libaccounts-glib

Library for managing accounts which can be used from GLib applications. It is part of the accounts-sso project

libaccounts-glib

accountsservice

D-Bus interface for user account query and manipulation

accountsservice

Application Indicators

Library and indicator to take menus from applications and place them in the panel.

The Aries Engine

A fast, simple, and powerful lo-fi game engine (renamed 'The Brick Engine' project)

aries

atasmart

Lean, small and clean implementation of an ATA S.M.A.R.T. reading and parsing library.

atasmart

Avant Window Navigator

Dock-like bar which sits at the bottom of the screen.

libcanberra

Implementation of the XDG Sound Theme and Name Specifications, for generating event sounds on free desktops, such as GNOME.

libcanberra, libcanberra-gtk

libchamplain

Library providing a ClutterActor to display maps. It also provides a Gtk+ widget to display maps in Gtk+ applications.

champlain-0.12, champlain-gtk-0.12

colord

Makes color managed hardware work

couchdb-glib

GLib-based CouchDB client library

dconf

Low-level configuration system

dee

Library that uses DBus to provide objects allowing you to create Model-View-Controller type programs across DBus.

dee-1.0

libdmtx

Open source software for reading and writing Data Matrix barcodes.

Evolution Data Server

Responsible for managing calendar and addressbook information for Evolution.

libebook-1.2, libecalendar-1.2, libedataserver-1.2

gcr

Library for bits of crypto UI and parsing etc.

libgda

Aims to provide a free unified data access architecture to the GNOME project.

gedit

A powerful general purpose text editor.

gee-0.8
(auto-generated)

libgee

GObject collection library, note the 0.8 version of the API is newer than the 1.0 version

gee-0.8

GNOME Keyring

Collection of components in GNOME that store secrets, passwords, keys, certificates and make them available to applications. Replaced by libsecret.

gnome-keyring-1

GtkSourceView

GTK+ widgets for viewing and editing source code

GtkSpell

Word-processor-style highlighting and replacement of misspelled words in a GtkTextView widget

GUPnP

Elegant, object-oriented open source framework for creating UPnP devices and control points

gupnp-1.0, gupnp-av-1.0, gupnp-dlna-1.0

libosinfo

Operating System information database

libosinfo-1.0

libmpdclient

Client library for Music Player Daemon

libproxy

Library handling all the details of proxy configuration

pulseaudio

PulseAudio

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
Vala PulseAudio playback Example

NetworkManager

Linux networking made easy

Rygel

Home media solution (UPnP AV MediaServer) that allows you to easily share audio, video and pictures to other devices.

LibRSVG

Render SVG files using cairo

librsvg-2.0

libsecret

Library for storing and retrieving passwords and other secrets. It communicates with the "Secret Service" using DBus. Replaces GNOME Keyring.

signon
(auto-generated)

gSSO - libsignon-glib

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

libsignon-glib

Spice

Complete open source solution for interaction with virtualized desktop devices

spice-client-glib-2.0, spice-client-gtk-3.0, spice-protocol,

Squash

Compression abstraction library

Telepathy

Flexible, modular communications framework that enables real-time communication via pluggable protocol backends

telepathy-glib

libvirt

Virtualization API

libvirt-gconfig-1.0, libvirt-glib-1.0, libvirt-gobject-1.0

Tracker

search engine, search tool and metadata storage system

vte

VTE is a LGPL 2+ licensed library provising a virtual terminal emulator widget

libxfce4util-1.0
garcon-1
libxfconf-0
libxfce4ui-1
exo-1
libxfce4panel-1.0
(all auto-generated))

Xfce4 Desktop Environment

Lightweight desktop environment for UNIX-like operating systems.

Xfce4 Vala Bindings
Xfce Stopwatch Plugin
xfce4-stopwatch-plugin Source

libxklavier

Provides high-level API for X Keyboard Extension known as XKB

Distributed with Vala

VAPI

Upstream

Description

Documentation

alsa

ALSA

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

alsa

atk

avahi-gobject

bzlib

cairo

ccss

clutter

clutter-gst

cogl-1.0
cogl-pango-1.0
(auto-generated)

Cogl

An open source GPU graphics & utilities API. There are now Cogl 2.0 bindings - see under Sources - Individuals

cogl-1.0
Rubik's Cube 3D Game in Vala/Clutter
Rubik's cube source

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'a bug tracker or the GitHub issue tracker.

The following bindings are included in the repository:

VAPI

Upstream

Description

Documentation

aubio

aubio

Tool designed for the extraction of annotations from audio signals

augeas

Augeas

Configuration editing tool

cairosdl

cairosdl

Helpers for drawing with cairo onto SDL surfaces.

libcouchbase

Couchbase

Couchbase NoSQL database

cpufreq

cpufreq

CPU frequency scaling in the Linux 2.6 kernels.

cups

CUPS

Common Unix Printing System

libcurl

cURL

Tool for transferring data with URL syntax

fcgi

FastCGI

The Fast Common Gateway Interface protocol for interfacing applications with web servers

FastCGI: A High-Performance Web Server Interface
FastCGI Specification
Valum Web Framework

gcrypt

libgcrypt

General purpose cryptographic library

gles2

OpenGL ES

Royalty-free, cross-platform API for full-function 2D and 3D graphics on embedded systems

glfw3

GLWF

Multi-platform library for creating windows with OpenGL contexts and managing input and events.

gpgme

GPGME

High-Level Crypto API for encryption, decryption, signing, signature verification and key management.

kiss_fft

Kiss FFT

Fast Fourier Transform based up on the principle, "Keep It Simple, Stupid."

leveldb

LevelDB

Fast and lightweight key/value database library by Google

libevent

libevent

Event notification library

magic

libmagic

Library for recognizing the type of data contained in a file.

libmarkdown

Discount

Discount's C library implementation of the Markdown text to HTML converter

Discount documentation

libmatheval

GNU libmatheval

Library to parse and evaluate symbolic expressions input as text

libmemcached
libmemcachedutil

libMemcached

an open source C/C++ client library and tools for the memcached server

oniguruma

Oniguruma

Regular expressions library.

opencv

OpenCV

Open Source Computer Vision Library

libqpid-proton

Apache Qpid Proton™

High performance, lightweight messaging library

librabbitmq

rabbitmq-c

RabbitMQ client

pa_ringbuffer

PortAudio

Single-reader single-writer lock-free ring buffer for PortAudio

portaudio

PortAudio

Free, cross-platform, open-source, audio I/O library.

portmidi

PortMidi

Real-time input and output of MIDI data using a system-independent interface.

pwquality

libpwquality

Library for password quality checking and generating random passwords.

samplerate

libsamplerate

Sample Rate Converter for audio

sane-backends

SANE - Scanner Access Now Easy

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.)

libgsasl

libgsasl

GNU SASL Library

sdl2
sdl2-android
sdl2-gfx
sdl2-image
sdl2-ios
sdl2-mixer
sdl2-net
sdl2-ttf
sdl2-windows

libsdl

Simple DirectMedia Layer (SDL). Cross-platform development C library designed to provide low level access to audio, keyboard, mouse, joystick, and graphics hardware (v2)

some SDL2 examples
SDL2 Documentation Wiki

sensors

lm-sensors

Linux hardware monitoring

libserialport

libserialport

Cross-platform library to use serial ports

snappy

snappy

Fast compressor/decompressor

sndfile

libsndfile

Library for reading and writing files containing sampled sound

libstemmer

Snowball

String processing language designed for creating stemming algorithms for use in Information Retrieval.

libsystemd-id128

systemd

Library for working with systemd's 128-bit identifiers

libsystemd-journal

systemd

systemd journal

tcc

TCC

Tiny C Compiler

uchardet

uchardet

Universal charset detection library

uuid

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

chipmunk

chipmunk

A high-performance 2D rigid body physics library

cogl-2.0
cogl-pango-2.0
(auto-generated)

Cogl

An open source GPU graphics & utilities API

Reference Manual
vala-cogl
valadoc

eflvala
(copy of original freesmartphone.org repository)

Enlightenment Foundation Libraries

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

libffi

libffi

Portable Foreign Function Interface Library

gdbm

GNU dbm

Library of database functions that use extensible hashing and work similar to the standard UNIX dbm

libgit2

libgit2

Linkable library for git

gl

opengl-glib

Alternative OpenGL bindings based on a GIR generated from the OpenGL spec.

Vala and Modern OpenGL - recommends COGL
Create GL.gir from OpenGL specification

gl

OpenGL

Cross-platform API for writing applications that produce 2D and 3D computer graphics.

gtkglext

GtkGLExt

OpenGL extension to GTK+ 2.0.

glu

OpenGL Utility Library

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.

glut

OpenGL Utility Toolkit

A window system independent toolkit for writing OpenGL programs.

glx

OpenGL for X

Manage OpenGL interaction with the X Window System and to encode OpenGL onto the X protocol stream for remote rendering.

liblo

liblo

Implementation of the Open Sound Control protocol for POSIX systems

LLVM

LLVM

Collection of modular and reusable compiler and toolchain technologies.

seed

Seed

Library and interpreter, dynamically bridging (through GObjectIntrospection) the WebKit JavaScriptCore engine

sfml

SFML

Free multimedia C++ API that provides you low and high level access to graphics, input, audio, etc.

xmms2

XMMS2

Music player

omx

OpenMAX

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

Infinote

Infinote is the name for the protocol replacing obby in Gobby 0.5.0

libzmq

ZeroMQ

High-performance asynchronous messaging library aimed at use in scalable distributed or concurrent applications.

transmission

Transmission

Transimission BitTorrent client

luajit

LuaJIT

Just-In-Time Compiler for Lua.

Ruby

Ruby

Dynamic, open source programming language.

json-rpc

glib-jsonrpc

JSON-RPC implementation in glib

lv2

LV2

LV2 is a portable plugin standard for audio systems

suil

Suil

Lightweight C library for loading and wrapping LV2 plugin UIs.

livl

libvlc

VLC media player

Free and open source cross-platform multimedia player and framework

libvlc.vapi : utiliser Vlc avec Vala

Deprecated or Obsolete Libraries

VAPI

Upstream

Description

Documentation

gladeui-2.0

RAD tool to enable quick & easy development of user interfaces. Replaced by Gtk.Builder

Utilisation de glade avec Vala

gtkspell-2.0

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
(broken link)

expat

XML parsing library

Projects/Vala/ListOfBindings (last edited 2016-05-24 11:05:14 by AlThomas)