Vala - Documentation

We're still working on documenting the whole language. The current draft can be found at Manual. It covers most of the language and is heavily annotated, but may contain mistakes.


If you want some tips before start hacking in Vala, take a tutorial and see what you can do with this.

If you find any mistakes in the tutorials on please feel free to correct them.


Genie is another programming language supported by the Vala compiler with a syntax closer to Python.


Other Resources

Current Status

Sample Code

If you have trouble compiling an example try the latest release of Vala. Some distributions ship with older versions of Vala which may lack some features. Also make sure that the respective libraries are installed along with their header files (e.g. *-devel packages on RedHat/Fedora/SuSE, *-dev packages on Debian/Ubuntu).

Language Features and Introductory Samples

Basics: Collections, Files, I/O, Networking, IPC

GUI Programming

Multimedia and Graphics

GNOME Platform

GLib Samples

Database Access


Projects Developed in Vala

Vala Specific

  • Autovala - A project manager for Vala that automatically creates and maintains CMake scripts.

  • Gee - Collection Library

  • gtkaml - An Application Markup Language for GTK+/Vala.

  • Maja - Vala to Javascript compiler.

  • libmodulo - Dependency Injection / Inversion of Control

  • Sampala - A sample Vala application demonstrating Autotools and i18n

  • Vala Benchmarks - Compare Vala versus others languages à la

  • Valadate - Unit Testing Framework

  • vala-dbus-binding-tool - Create Vala D-Bus Interfaces from XML Specifications

  • Valadoc - Documentation generator for generating API documentation from Vala source code.

  • Valag - Vala Graphviz code tree and control flow graph generator

  • Val(a)IDE - Small IDE for the Vala language

  • ValaSwig - Vapi to Swig interface translator to create bindings for python, perl, ruby,.. from a vapi description.

  • ValaWinPKG - Vala Package manager, install needed MinGW libraries on Windows®.

Applications / Applets / Other Projects

  • AllTray - A program for docking software to the system tray/notification area.

  • Asteroids_Vala- Simple game using OpenGl and SDL

  • Baobab - Disk usage analyzer

  • Birdfont - A font editor

  • Caméléon - Easy file converter.

  • Cheese - Cheese is an application that takes photos and videos from your webcam.

  • Chess - GNOME Chess game

  • Commandeer - A sysadmin tool to lock the desktop while a command runs.

  • Corebird - A modern Gtk+ Twitter client

  • Cornucopia - services middleware for mobile devices (2nd incarnation).

  • Cronopete - A backup utility, which aims to be a clone of Apple's Time Machine.

  • dconf editor - The dconf configuration editor

  • Déjà Dup - A backup utility.

  • Diodon - GTK+ clipboard manager.

  • DSync - Directory Sync - simple rsync frontend for Maemo and GNOME

  • DVB Daemon - Daemon to setup your DVB devices, record and watch TV shows and browse EPG.

  • Ease - Presentation authoring tool for the GNOME desktop.

  • elementary OS - Vala is the language of choice for elementary OS.

  • Epris music player - A D-Bus service and command line client to listen to music. Unlike xmms2 or mpd, it uses GStreamer and D-Bus.

  • FeedReader - RSS desktop client

  • Fillmore - A Multitrack audio recorder for GNOME

  • Final Page - A tool to reorganize, split and merge PDF documents.

  • Folks - A library that aggregates people from multiple sources to create metacontacts.

  • Calculator - GNOME Calculator

  • Games - Simple game launcher for GNOME

  • Geary - An email application built for GNOME 3.

  • Gitg - git repository viewer for gtk+/GNOME.

  • Global Menu - A globally-shared menu bar for GNOME

  • Gmail Notify - A Gmail notification app

  • Gnome Encfs Manager - A manager and mounter for EncFS stashes

  • Gnome media applet - A GNOME applet to simply mount/umount removable media

  • Gnome Pie - A visual application launcher for the Gnome Desktop

  • GNOME Scan - A scan library for GNOME

  • gradio - "A GTK3 app for finding and listening to internet radio stations"

  • gst-plugins-cl - An OpenCL plugin for gstreamer written in vala

  • Gwibber - Microblogging client

  • GXml - An XML library

  • Haguichi - "Haguichi provides a graphical frontend for Hamachi on Linux", with an indicator for GNOME shell

  • Hum - A lightweight music player built on DBus, Tracker, and GStreamer

  • i4uc - An IDE for micro-controllers

  • Iagno - Strategy game

  • LaTeXila - An integrated LaTeX environment

  • lekhonee-gnome - A desktop client for Wordpress

  • libgtkflow - A universal library for drawing flow graphs with Gtk+ 3

  • libvfcgi - FastCGI library for GObject/Vala.

  • Lights Off - Logic game

  • Lingo - A dictionary application

  • Listaller - A distro-agnostic application management and software installation tool based on PackageKit

  • Lucruri - Todo list and note taking application.

  • Mahjongg - Mahjongg game

  • Marlin - The sexiest fish in the large sea of file-browsers

  • Meiga - Light and easy content server for your desktop.

  • Mines - Minesweeper game

  • Mind Map Architect - Program for manipulating with mind maps

  • Mipsdis - MIPS32 disassembler for stripped ELF (without section tables)

  • moserial - A serial terminal for the GNOME desktop.

  • MPRIS Applet - MPRIS client panel applet/plugin for GNOME and Xfce.

  • Multiplication Puzzle - A puzzle game.

  • Mutiara - A motif designer based on fractals.

  • OMAP Media Apps - GStreamer and GTK+ based applications for the OMAP platform, written in Genie.

  • Paldo Installer - Installer for the Paldo Linux Distro.

  • Pantheon Mail - An email client application.

  • Pasang Emas - Traditional board game of Brunei.

  • PDF Presenter Console - A Keynote like multi monitor "Presenter Console" using PDF as input.

  • PDF PC - A fork from PDF Presenter Console with several new options and enhancements.

  • peek - "Simple animated GIF screen recorder with an easy to use interface"

  • People Project - Aims at providing an unified access to contacts for desktop applications.

  • Picsaw - Jigsaw puzzle game

  • Pino - A Twitter client.

  • Plank - The world's simplest dock

  • GNOME Pomodoro - "GNOME Pomodoro is a small application that helps managing time according to Pomodoro Technique", source code on GitHub

  • Postler - ultra simple desktop mail client

  • PSchema - A framework for investigating artificial intelligence through the use of Piagetian schema learning.

  • Quadrapassel - Tetris game

  • radare - Multi-architecture assembly code graph in Vala-Cairo.

  • RhythmPnP - Rhythmbox Universal Plug'N'Play Media Renderer Plugin

  • Rygel - A collection of UPnP/DLNA media devices for GNOME

  • Scratchpad - Spatial text editor for the GNOME desktop.

  • SevenUSBurn - Burn ISO images to USB devices.

  • Shishen Sho Mahjongg for Gtk and Maemo - A board game similar to Mahjong.

  • Shotwell - A photo organizer.

  • Simple Scan - Scanner application

  • SmartSim - Visual digital logic design and simulation package.

  • Steadyflow - A simple download manager.

  • Swell Foop - Puzzle game

  • Switchboard - Modular desktop settings hub.

  • Synapse - A semantic file launcher

  • systemd - Graphical frontend for the systemd system and service manager.

  • Tetravex - Puzzle game

  • Tuntun - A panel applet to control the OpenVPN daemon.

  • Vala - The Vala compiler itself is written in Vala.

  • ValaTerm - A lightweight terminal emulator.

  • Vala Terminal - A lightweight terminal based on VTE.

  • Valence - A simple PDF viewer.

  • Vinagre - A VNC Client for the GNOME Desktop. Parts of Vinagre is written in Vala.

  • Watray - A general purpose IDE.

  • XML Bird - XML parser

  • Xfmpc - A small MPD client.

  • Xfce4 Notes Plugin - A quick-to-scribble notes application.

  • Xfce4 Stopwatch Plugin - A plugin for the panel that keeps track of elapsed time

  • Xnoise - A media player.

  • Valum - Web framework for Vala. Inspired by sinatra and allows lua scripting.

  • Zeitgeist - Event logging framework

Projects/Vala/Documentation (last edited 2017-04-14 10:48:29 by AlThomas)