Skip to content

Cloudxtreme/valum

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Valum web micro-framework

Build Status Documentation Status Coverage Status codecov.io

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

using Valum;
using VSGI.HTTP;

var app = new Router ();

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

new Server ("org.valum.example.App", app.handle).run ();

Installation

The installation process is fully documented in the user documentation.

Features

  • streaming-first API for minimal overhead with support for async I/O through GIO
  • 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 ("http://example.com/");
    • filtering by composition
    • context to hold states
  • middlewares for subdomains, server-sent events, content negotiation and much more
  • written upon VSGI so that you can deploy using libsoup-2.4 built-in HTTP server, CGI, FastCGI or SCGI
  • extensively documented at docs.valum-framework.org

Contributing

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 TODO.md 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 versionning, 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:

Packages

No packages published

Languages

  • Vala 95.4%
  • Python 4.5%
  • Other 0.1%