vala
// ExampleApp.vala
public class ExampleApp : Gtk.Application {
public ExampleApp () {
Object (application_id: "com.example.App");
}
public override void activate () {
var win = new Gtk.ApplicationWindow (this);
var btn = new Gtk.Button.with_label ("Hello World");
btn.clicked.connect (win.close);
win.child = btn;
win.present ();
}
public static int main (string[] args) {
var app = new ExampleApp ();
return app.run (args);
}
}
// Compile command (requires gtk4 package to be installed):
// valac --pkg gtk4 ExampleApp.valaWhy Vala?
- Productivity
- Comfortably write your code in an object-oriented way with high level abstractions, while having access to deep integrations with GNOME technologies such as: GObject, GTK and more!
- Performance
- Vala compiles code down to blazingly fast, fully native binaries. You're also able to reuse existing C Code in your Vala programs as well as generate C Code from Vala.
- Open-Source
- Vala is free and open-source software. It has a great community that contributes to the compiler and develops lots of tooling.
- Tooling Documentation
What can you build?
- GUI Applications
- Perfect integration of GTK, Libadwaita and Granite makes development super simple. Easily publish your apps on Flathub without bloated packages.
- Command Line Programs
- Use a large standard library and many third-party libraries available for use in Vala.
- Libraries
- Provide bindings for many other languages and API documentation without manual work. Also, dynamic and static linking are both supported.
Blog

ValaBot: an AI coding assistant fine-tuned for Vala
Sam Cowen
Vala: the smoothest C off-ramp
Reuben Thomas
print("Hello Planet GNOME");
Lorenz WildbergCurrent Versions
- Vala 0.56.17 (Stable Long-term Support)
- Vala main (Development)
Showcase
TubaBrowse the Fediverse
WorkbenchLearn and prototype with Vala and other GNOME technologies
DinoA modern open-source chat client for the desktop. Focuses on providing a clean and reliable Jabber/XMPP experience while having your privacy in mind.
MonitorManage processes and monitor system resources
TextSnatcherCopy Text from Images with ease, Perform OCR operations in seconds.
TimeshiftSystem restore tool for Linux. Creates filesystem snapshots using rsync+hardlinks, or BTRFS snapshots.
CrownCrown is a complete and cross-platform game engine designed for flexibility, performance, and fast-iterations.
Community
- Forums
- Ask questions related to Vala in the GNOME Discourse forums under the 'vala' tag.
- Discourse Forums
- Internals Chat
- Talk to the developers or ask questions about how to contribute to Vala, use the Vala Matrix channel.
- Matrix Room
Social Media
Follow the Vala project across these platforms