Skip to content


Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Valum Web micro-framework

Build Status Documentation Status

Valum is a Web micro-framework entirely written in the Vala programming language.

using Valum;
using VSGI;

var app = new Router ();

app.use (basic ()); /* handle stuff like 404 errors and more */

app.get ("/", (req, res) => {
    res.headers.set_content_type ("text/plain", null);
    return res.expand_utf8 ("Hello world!");

Server.@new ("http", handler: app).run ({"app", "--address=", "--forks=4"});



We maintain Docker images already setup with Valum and the latest LTS version of Ubuntu.

docker pull valum/valum


If you use Meson, you can install Valum as a subproject using Bower:

bower install valum

For other installation procedures, head to the user documentation.


Valum has a two layer architecture: VSGI a middleware that abstract away various network protocols under a simple interface and Valum itself, a Web micro-framework that provide all the features needed for writing applications and services. In short it provides:

  • powerful routing mechanism to write expressive Web services:
    • helpers and flags (i.e. Method.GET | Method.POST) for common HTTP methods
    • scoping
    • rule system supporting typed parameters, group, optional and wildcard
    • regular expression with capture extraction
    • automatic HEAD and OPTIONS
    • subrouting
    • status codes through error domains (i.e. throw new Redirection.PERMANENT ("");
    • context to hold states
  • middlewares for subdomains, server-sent events, content negotiation and much more
  • VSGI, an abstraction layer for various protocols:
    • fast, asynchronous and elegant
    • streaming-first API
    • listen on multiple interfaces (e.g. port, UNIX socket, file descriptor) with tight GIO integration
    • support libsoup-2.4 built-in HTTP server, CGI, FastCGI and SCGI out of the box
    • support plugin for custom server implementation
    • fork to scale on multi-core architecture
    • cushion for parsing CLI, logging and running a Web application
  • extensive documentation at


Valum is built by the community under the LGPL license, so anyone can use or contribute to the framework.

  1. fork repository
  2. pick one task from or GitHub issues
  3. let us know what you will do (or attempt!)
  4. code
  5. make a pull request of your amazing changes
  6. let everyone enjoy :)

We use semantic versioning, so make sure that your changes

  • does not alter api in bugfix release
  • does not break api in minor release
  • breaks api in major (we like it that way!)

Discussions and help

You can get help with Valum from different sources:

  • mailing list: vala-list.
  • IRC channel: #vala and #valum at
  • issues on GitHub with the question label