A curated list of awesome Vala libraries.
- Data Structures & Data Types
- Graphic Libraries
- GUI Programming
- Multimedia Processing
- XML & Data Serialization
- Numerical Computation
- Crypto & Security
- Web Development
Data Structures & Data Types
- Libgee - A utility library providing GObject-based interfaces and classes for commonly used data structures (lists, maps, queues, trees, etc.).
- Graphene - A thin layer of types for graphic libraries. It provides common types needed to handle 3D transformations: points, triangles, rectangles, quads, quaternions, vectors, matrices, spheres, etc.
- Numeric-GLib - A collection of numeric data types for GLib (and Vala) via GCC extensions. It includes 128 bit integers & floats, complex types, vectorized operations, and decimal types.
- Cairo - A 2D graphics library with support for multiple output devices. This is pretty much the default library you get in Vala.
- SDL2 - A cross-platform development library designed to provide low level access to audio, keyboard, mouse, joystick, and graphics hardware via OpenGL, Direct3D, and Vulkan. Community bindings are available here.
- GRX - A graphics library for simple graphics displays (think 1-bit displays or Adafruit's PiTFT displays). It also includes keyboard, mouse, joystick and touchscreen input support.
- GEGL - A data flow based image processing framework, providing floating point processing and non-destructive image processing capabilities. Think of it as "Reactive Programming for Images".
- Babl - A dynamic, any to any, pixel format translation library.
- GTK+ - The de facto library fro GUI development in Vala. Bindings are included with the vala compiler.
- GStreamer - A powerful framework for creating multimedia applications.
XML & Data Serialization
- GXML - A GObject API for manipulating XML and a Serializable framework from GObject to XML.
- Json-GLib - Implements a full JSON parser and generator using GLib and GObject, and integrates JSON with GLib data types.
- libyaml-glib - The GLib binding of libyaml, plus a GObject builder that understands YAML.
- Compose - A functional templating library for Vala.
- template-glib - A library for template expansion which supports calling into GObject Introspection from templates.
- vast - A project for generative modelling in Vala. Think of TensorFlow rewritten in Vala.
Crypto & Security
- GnuTLS - A secure communications library implementing the SSL, TLS and DTLS protocols and technologies around them. It provides a simple API to access the secure communications protocols as well as APIs to parse and write X.509, PKCS #12, and other required structures.
- Valum - A Web micro-framework entirely written in Vala.
- Ambition - A web framework written in Vala, with the MVC pattern in mind. Kinda unmaintained (someone could refactor it to use Valum under the hood, and maybe move it to Meson
Contributions welcome! Read the contribution guidelines first.
To the extent possible under law, Mario Daniel Ruiz Saavedra and the other contributors have waived all copyright and related or neighboring rights to this work.