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
Vala Documentation Updates - May 2026
Colin KiamaValaBot: an AI coding assistant fine-tuned for Vala
Sam CowenVala: the smoothest C off-ramp
Reuben ThomasCurrent Versions
- Vala 0.56.17 (Stable Long-term Support)
- Vala main (Development)
Showcase
- Tuba
Browse the Fediverse
- Workbench
Learn and prototype with Vala and other GNOME technologies
- Dino
A modern open-source chat client for the desktop. Focuses on providing a clean and reliable Jabber/XMPP experience while having your privacy in mind.
- Monitor
Manage processes and monitor system resources
- TextSnatcher
Copy Text from Images with ease, Perform OCR operations in seconds.
- Timeshift
System restore tool for Linux. Creates filesystem snapshots using rsync+hardlinks, or BTRFS snapshots.
- Crown
Crown 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