Skip to main content
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.vala

Why Vala?

  • Clear and familiar syntax - Based on C, C# and Java
  • Object-oriented when you need it - Built-in support for classes, interfaces, inheritance and more, but you can also just use procedural programming features instead.
  • Automatic memory management without overhead - Vala uses ref counting by default, so you won't have to worry about managing memory in most programs
  • C interoperability - Use GObject-based C Libraries via binding files or call C functions directly from Vala
  • Compiles to native binaries - Extremely fast program execution times and no virtual machine or runtime environment is required to be installed for execution
  • Modern language features - Type inference, null safety, generics, lambdas, async/await
  • First-class GObject and GTK support - Optional, but unmatched when you need it
Learn more about Vala

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

Purple background with white text on center that says 'Vala'.
Vala Documentation Updates - June 2026
Colin Kiama
Purple background with white text on center that says 'Vala'.
Vala Documentation Updates - May 2026
Colin Kiama
Purple background with white text on center that says 'Vala'.
ValaBot: an AI coding assistant fine-tuned for Vala
Sam Cowen
View Blog

Current Versions

How to install

Roadmap

Showcase

View More Vala Projects

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
Community Server
Connect with the community on the Discord server.
Discord Server

Social Media

Follow the Vala project across these platforms