External Vala Bindings
Here's a list of some bindings which are not delivered along with Vala and of projects which officially provide Vala bindings. Add your own bindings by registering to the wiki and attaching your .vapi.
libmemcached.vapi Bindings for libmemcached
Application Indicators Replacement for the notification area. Bindings are for adding applications to the panel.
The Brick Engine A fast, simple, and powerful lo-fi game engine, with .vapi available here: brick.vapi
Avant Window Navigator GTK+-based dock. Bindings (added as of version 0.2.4) are for building applets via libawn.
couchdb-glib GLib-based CouchDB client library. couchdb-glib-1.0.vapi , Launchpad bzr branch
Gtk Source Completion a completion library for GtkTextView component gtksourcecompletion-1.0.vapi
GtkSpell A spell-checking addon for GTK's TextView widget. gtkspell-2.0.vapi Other GtkSpell vapi
GUPnP GObject UPnP library.
ige-mac-integration Mac OS X GTK+ Integration ige-mac-integration.vapi igedemo.vala
liblo Lightweight OSC protocol implementation.
libowl-av Audio/Video widget library.
libgconf-bridge GConf-GObject bridging library.
libguniqueapp A Library for GNOME Single-Instance Applications libguniqueapp.vapi
libgcrypt a general purpose cryptographic library gcrypt.vapi
libindicate, Ubuntu's library for creating and manipulating panel indicators
OpenGL Cross-platform API for writing applications that produce 2D and 3D computer graphics.
GtkGLExt: gtkglext-1.0.vapi OpenGL extension to GTK+ 2.0.
GL: gl.vapi OpenGL API (Alternative: GL-1.0.gir or gl.vapi. These bindings are generated from OpenGL spec, the source is located on Github.)
GLU: glu.vapi OpenGL Utility Library
GLUT: glut.vapi OpenGL Utility Toolkit
GLX: glx.vapi OpenGL Extension to the X Window System
GLFW: libglfw.vapi Free and simple multi-platform library for creating OpenGL contexts
Seed, JavaScriptCore binding for GNOME
SFML, Simple and Fast Multimedia Library
telepathy-glib (configure with --enable-vala-bindings)
xmms2 xmms2 client library bindings, available as a part of the Abraca xmms2 client: xmms2-client.vapi xmms2-client-glib.deps xmms2-client-glib.vapi (GIT repository)
Midgard2 Midgard2 Content Repository midgard2.vapi
Infinote Collaboration protocol 0.5 vala bindings (Infinote Website)
libzmq.vapi ZeroMQ 2.1.4 bindings (https://github.com/lgunsch/zmq-vala, http://www.zeromq.org/)
opencl.vapi - OpenCL bindings (tested with clover)
gdbm GNU dbm database (http://www.gnu.org/s/gdbm/)
snappy.vapi - Snappy, fast compression library from Google.
cpufreq - interface to library from package Userspace utilities for the Linux kernel cpufreq subsystem
sensors - publically accessible functions provided by the sensors library
transmission - vapi for popular torrent client
luajit - vapi for LuaJIT
oniguruma - vapi for famous regex library
Ruby.vapi - use ruby from vala
GDA bindings - Bindings for GNU Database Access library
Augeas.vapi - VAPI for http://augeas.net/ Generic configuration management API.
tcc.vapi - vapi for tcc
json-rpc - JSON RPC for vala
https://github.com/dsego/vapi - Complete or partial bindings for: Aubio 0.4, KissFFT 1.2, PortAudio v19, Libsamplerate 0.1, Libsndfile 1.0
devhelp-vapi - bindings for devhelp
There's a project named 'vala-vapis' which aims to collect all those unofficial vapi files:
hg clone http://hg.youterm.com/vala-vapis
There is a tutorial for creating bindings to GLib/GObject based libs.
Getting your bindings into Vala
Other than adding the bindings to this page you might want to ask for its inclusion in Vala. If that's the case, these are some useful tips you can follow to get your bindings in easier:
The actual vala-gen-introspect could potentially work also with non-glib projects. If it works for your library try using it to generate the bindings automatically. For examples about metadata and custom.vala just look under vapi/packages of the Vala source tree.
- Make sure your bindings are complete and working in all its parts.
Use the Vala coding style as much as you can (i.e. CamelCaseForSymbols, underscore_variables_and_methods, UPPER_CASE_CONSTANTS_AND_ENUMVALUES).
File a bug under the https://bugzilla.gnome.org/enter_bug.cgi?product=vala and attach your .vapi (or a patch from git if possible).
Once your bindings are accepted and if you keep being interested in your bindings, please propose yourself as maintainer of the bindings.