Valum web micro-framework
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
andOPTIONS
- subrouting
- status codes through error domains (i.e.
throw new Redirection.PERMANENT ("http://example.com/");
- filtering by composition
- context to hold states
- helpers and flags (i.e.
- 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.
- fork repository
- pick one task from TODO.md or GitHub issues
- let us know what you will do (or attempt!)
- code
- make a pull request of your amazing changes
- 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:
- mailing list: vala-list.
- IRC channel: #vala at irc.gimp.net
- Google+ page for Vala
- issues on GitHub with the
question
label