348 lines
15 KiB
HTML
348 lines
15 KiB
HTML
<h1 id="awesome-vala-awesome">Awesome Vala <a
|
||
href="https://awesome.re"><img src="https://awesome.re/badge.svg"
|
||
alt="Awesome" /></a></h1>
|
||
<p><a
|
||
href="https://vala.dev"><img src="vala.svg" align="right" width="100"></a></p>
|
||
<p>A curated list of resources for Vala - A programming language using
|
||
modern high level abstractions without imposing additional runtime
|
||
requirements, by leaning on GLib and GObject.</p>
|
||
<h2 id="contents">Contents</h2>
|
||
<ul>
|
||
<li><a href="#apps">Apps</a>
|
||
<ul>
|
||
<li><a href="#cryptography--security">Cryptography &
|
||
Security</a></li>
|
||
<li><a href="#design-tools">Design Tools</a></li>
|
||
<li><a href="#development-tools">Development Tools</a></li>
|
||
<li><a href="#games">Games</a></li>
|
||
<li><a href="#internet-browsers">Internet Browsers</a></li>
|
||
<li><a href="#music">Music</a></li>
|
||
<li><a href="#personalization">Personalization</a></li>
|
||
<li><a href="#productivity">Productivity</a></li>
|
||
<li><a href="#system-tools">System Tools</a></li>
|
||
<li><a href="#virtualization">Virtualization</a></li>
|
||
<li><a href="#weather">Weather</a></li>
|
||
</ul></li>
|
||
<li><a href="#cli-tools">CLI Tools</a></li>
|
||
<li><a href="#editor-plugins">Editor Plugins</a></li>
|
||
<li><a href="#language-servers">Language Servers</a></li>
|
||
<li><a href="#libraries">Libraries</a>
|
||
<ul>
|
||
<li><a href="#command-line">Command-line</a></li>
|
||
<li><a href="#concurrency">Concurrency</a></li>
|
||
<li><a href="#cryptography--security-1">Cryptography &
|
||
Security</a></li>
|
||
<li><a href="#data-structures--data-types">Data Structures & Data
|
||
Types</a></li>
|
||
<li><a href="#databases">Databases</a></li>
|
||
<li><a href="#graphics-libraries">Graphics Libraries</a></li>
|
||
<li><a href="#gui-programming">GUI Programming</a></li>
|
||
<li><a href="#ioc-and-dependency-injection">IoC and Dependency
|
||
Injection</a></li>
|
||
<li><a href="#multimedia-processing">Multimedia Processing</a></li>
|
||
<li><a href="#numerical-computation">Numerical Computation</a></li>
|
||
<li><a href="#templating">Templating</a></li>
|
||
<li><a href="#text-processing">Text Processing</a></li>
|
||
<li><a href="#web-development">Web Development</a></li>
|
||
<li><a href="#xml--data-serialization">XML & Data
|
||
Serialization</a></li>
|
||
</ul></li>
|
||
</ul>
|
||
<h2 id="apps">Apps</h2>
|
||
<h3 id="cryptography-security">Cryptography & Security</h3>
|
||
<ul>
|
||
<li><a
|
||
href="https://gitlab.com/vinarisoftware/integrity-check-gtk">Integrity
|
||
Check</a> - Linux application written in Vala and GTK, designed to get
|
||
the verification sum of a file (MD5, SHA1, SHA256) and compare to the
|
||
sum of verification provided by the file creator.</li>
|
||
</ul>
|
||
<h3 id="design-tools">Design Tools</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/akiraux/Akira">Akira</a> - Native Linux
|
||
App for UI and UX Design built in Vala and GTK.</li>
|
||
<li><a href="https://github.com/johanmattssonm/birdfont">Birdfont</a> -
|
||
A font editor for creating fonts in TTF, EOT, SVG and BIRDFONT
|
||
format.</li>
|
||
</ul>
|
||
<h3 id="development-tools">Development Tools</h3>
|
||
<ul>
|
||
<li><a href="https://gitlab.gnome.org/GNOME/gitg">GitG</a> - A graphical
|
||
user interface for <a href="https://git-scm.com/">git</a>.</li>
|
||
<li><a href="https://github.com/dbkangaroo/kangaroo">Kangaroo</a> -
|
||
AI-powered SQL client and admin tool for popular databases.</li>
|
||
<li><a
|
||
href="https://gitlab.com/XavierEduardo99/vamm-vinari-software">VAMM
|
||
(Vinari OS Apache & MariaDB Manager)</a> - Manages LAMP services
|
||
using a GTK 3 GUI.</li>
|
||
</ul>
|
||
<h3 id="games">Games</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/tkashkin/GameHub">GameHub</a> - A
|
||
unified library for all your games.</li>
|
||
<li><a href="https://gitlab.gnome.org/World/highscore">High Score (GNOME
|
||
Games)</a> - Retro gaming application for the GNOME desktop.</li>
|
||
<li><a href="https://github.com/antolius/sage">Sage</a> - A code
|
||
breaking game made for elementary OS.</li>
|
||
<li><a href="https://github.com/avojak/warble">Warble</a> - Native Linux
|
||
word-guessing game built in Vala and Gtk for elementary OS.</li>
|
||
</ul>
|
||
<h3 id="internet-browsers">Internet Browsers</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/starfish-app/Starfish">Starfish</a> - A
|
||
Gemini browser for elementary OS.</li>
|
||
</ul>
|
||
<h3 id="music">Music</h3>
|
||
<ul>
|
||
<li><a href="https://gitlab.gnome.org/neithern/g4music">g4music</a> - A
|
||
beautiful, fast, fluent, light weight music player written in GTK4.</li>
|
||
</ul>
|
||
<h3 id="personalization">Personalization</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/cheesecakeufo/komorebi">Korembi</a> - A
|
||
beautiful and customizable wallpapers manager for Linux.</li>
|
||
</ul>
|
||
<h3 id="productivity">Productivity</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/phase1geo/Annotator">Annotator</a> -
|
||
Annotate images for better communication.</li>
|
||
<li><a href="https://github.com/elfenware/badger">Badger</a> - Remind
|
||
yourself to not sit and stare at the screen for too long.</li>
|
||
<li><a href="https://gitlab.gnome.org/raggesilver/blackbox">Blackbox</a>
|
||
- A beautiful GTK 4 terminal.</li>
|
||
<li><a href="https://github.com/dino/dino">Dino</a> - A modern
|
||
Jabber/XMPP Client using GTK+/Vala.</li>
|
||
<li><a href="https://github.com/Diego-Ivan/Flowtime">Flowtime</a> - GTK4
|
||
Libadwaita Pomodoro Timer.</li>
|
||
<li><a href="https://gitlab.gnome.org/GNOME/geary">geary</a> - Geary is
|
||
an email application built around conversations, for the GNOME 3
|
||
desktop.</li>
|
||
<li><a href="https://gitlab.gnome.org/GNOME/gnome-calculator">GNOME
|
||
Calculator</a> - The calculator app for the GNOME desktop.</li>
|
||
<li><a href="https://github.com/artemanufrij/graphui">graphui</a> -
|
||
Graph Visualization based on graphviz.</li>
|
||
<li><a href="https://github.com/cassidyjames/ideogram">Ideogram</a> -
|
||
Emoji Picker app.</li>
|
||
<li><a href="https://github.com/phase1geo/Minder">Minder</a> -
|
||
Mind-mapping application.</li>
|
||
<li><a href="https://github.com/lainsce/notejot">Notejot</a> -
|
||
Stupidly-simple notes app.</li>
|
||
<li><a href="https://github.com/Philip-Scott/Notes-up">Notes-up</a> -
|
||
Markdown notes editor & manager.</li>
|
||
<li><a href="https://github.com/phase1geo/Outliner">Outliner</a> - Write
|
||
outlines easily.</li>
|
||
<li><a href="https://gitlab.com/posidon_software/paper/">Paper</a> -
|
||
Take notes in Markdown.</li>
|
||
<li><a href="https://github.com/pdfpc/pdfpc">pdfpc</a> - A GTK presenter
|
||
application with multi-monitor support for PDF files.</li>
|
||
<li><a href="https://github.com/alainm23/planify">Planify</a> - Task
|
||
manager with Todoist support designed for GNU/Linux.</li>
|
||
<li><a href="https://github.com/Philip-Scott/Spice-up">Spice-up</a> -
|
||
Presentations App for the modern Linux Desktop.</li>
|
||
<li><a href="https://github.com/phase1geo/TextShine">TextShine</a> -
|
||
Convert and manipulate text.</li>
|
||
<li><a href="https://github.com/RajSolai/TextSnatcher">TextSnatcher</a>
|
||
- Copy text from Images with ease.</li>
|
||
</ul>
|
||
<h3 id="system-tools">System Tools</h3>
|
||
<ul>
|
||
<li><a href="https://gitlab.gnome.org/GNOME/connections">Connections</a>
|
||
- A remote desktop client for the GNOME desktop environment.</li>
|
||
<li><a href="https://github.com/elementary/appcenter">elementary OS App
|
||
Center</a> - Pay-what-you-can app store for elementary OS.</li>
|
||
<li><a href="https://github.com/akarin123/manhelper">Man Helper</a> - A
|
||
lightweight GTK front-end for man pages.</li>
|
||
<li><a href="https://github.com/stsdc/monitor">Monitor</a> - Manage
|
||
processes and monitor system resources.</li>
|
||
<li><a href="https://github.com/phw/peek">Peek</a> - Simple animated GIF
|
||
screen recorder with an easy to use interface.</li>
|
||
<li><a
|
||
href="https://github.com/ErikReider/SwayNotificationCenter">SwayNotifiationCenter</a>
|
||
- A simple GTK based notification daemon for SwayWM.</li>
|
||
</ul>
|
||
<h3 id="virtualization">Virtualization</h3>
|
||
<ul>
|
||
<li><a href="https://gitlab.gnome.org/GNOME/gnome-boxes">GNOME Boxes</a>
|
||
- A simple GNOME 3 application to access virtual machines.</li>
|
||
</ul>
|
||
<h3 id="weather">Weather</h3>
|
||
<ul>
|
||
<li><a href="https://gitlab.com/bitseater/meteo">Meteo</a> - GTK Weather
|
||
app using the OpenWeatherMap API.</li>
|
||
</ul>
|
||
<h2 id="cli-tools">CLI Tools</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/watsonprojects/EasyDocs">EasyDocs</a> -
|
||
Quickly read developer documentation.</li>
|
||
<li><a href="https://github.com/colinkiama/spider">Spider</a> - Quickly
|
||
generate a HTML5 site structure.</li>
|
||
<li><a href="https://github.com/vala-lang/valdo">Valdo</a> - Create new
|
||
Vala projects from templates.</li>
|
||
</ul>
|
||
<h2 id="editor-plugins">Editor Plugins</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/vala-lang/vala-vscode">Vala VSCode</a> -
|
||
A plugin for Visual Studio Code that enables basic autocompletion and
|
||
syntax highlighting for Vala.</li>
|
||
<li><a
|
||
href="https://github.com/technosophos/Vala-TMBundle">Vala-TMBundle</a> -
|
||
A TextMate bundle that provides Vala syntax highlighting, code
|
||
completion, etc. Sublime Text 3 can also use this plugin.</li>
|
||
<li><a
|
||
href="https://atom.io/packages/language-vala-modern">language-vala-modern</a>
|
||
- Provides Vala language support in Atom. It’s a fork of the
|
||
unmaintained “language-vala package”.</li>
|
||
<li><a href="https://launchpad.net/valasyntax4sublimetext">Vala Syntax 4
|
||
Sublime Text</a> - A basic plugin for Sublime Text 3 that provides
|
||
syntax highlighting.</li>
|
||
</ul>
|
||
<h2 id="language-servers">Language Servers</h2>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/vala-lang/vala-language-server">vala-language-server</a>
|
||
- A language server that aims to provide code completion, formatting,
|
||
syntax highlighting, and everything else according to the Language
|
||
Server spec.</li>
|
||
</ul>
|
||
<h2 id="libraries">Libraries</h2>
|
||
<h3 id="command-line">Command-line</h3>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/naaando/console-command">console-command</a> -
|
||
Library to route command-line arguments to a Command pattern object,
|
||
current implementation covers extension by inheritance or using
|
||
closures.</li>
|
||
</ul>
|
||
<h3 id="concurrency">Concurrency</h3>
|
||
<ul>
|
||
<li><a href="https://gitlab.com/kosmospredanie/gpseq">gpseq</a> - A
|
||
parallelism library for Vala and GObject.</li>
|
||
</ul>
|
||
<h3 id="cryptography-security-1">Cryptography & Security</h3>
|
||
<ul>
|
||
<li><a href="https://www.gnutls.org/">GnuTLS</a> - 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.</li>
|
||
</ul>
|
||
<h3 id="data-structures-data-types">Data Structures & Data
|
||
Types</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/ebassi/graphene">Graphene</a> - 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.</li>
|
||
<li><a href="https://wiki.gnome.org/Projects/Libgee">Libgee</a> - A
|
||
utility library providing GObject-based interfaces and classes for
|
||
commonly used data structures (lists, maps, queues, trees, etc.).</li>
|
||
<li><a href="https://github.com/arteymix/numeric-glib">Numeric-GLib</a>
|
||
- 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.</li>
|
||
<li><a href="https://github.com/lcallarec/united">United</a> - A library
|
||
for unit manipulation (like kilograms, meters, etc).</li>
|
||
<li><a href="https://gitlab.gnome.org/BZHDeveloper/vul">vul (Vala
|
||
Utility Libraries)</a> - A set of utility libraries for Vala that add:
|
||
Text stream handling (input and output), JSON serialization and
|
||
deserialization, and, Archive compression and extraction.</li>
|
||
</ul>
|
||
<h3 id="databases">Databases</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/AmbitionFramework/almanna">Almanna
|
||
ORM</a> - The Almanna ORM for Vala/GLib.</li>
|
||
</ul>
|
||
<h3 id="graphics-libraries">Graphics Libraries</h3>
|
||
<ul>
|
||
<li><a href="http://gegl.org/babl/">Babl</a> - A dynamic, any to any,
|
||
pixel format translation library.</li>
|
||
<li><a href="https://cairographics.org/">Cairo</a> - A 2D graphics
|
||
library with support for multiple output devices. This is pretty much
|
||
the default library you get in Vala.</li>
|
||
<li><a href="http://gegl.org/">GEGL</a> - 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”.</li>
|
||
<li><a href="https://github.com/ev3dev/grx">GRX</a> - 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.</li>
|
||
<li><a href="https://gitlab.com/gsvg/gsvg">GSVG (GObject SVG
|
||
Library)</a> - GSVG is an effort to provide a GLib GObject
|
||
implementation of W3C standard API.</li>
|
||
<li><a href="https://github.com/lcallarec/live-chart">live-chart</a> - A
|
||
real-time charting library for Vala and GTK3 based on Cairo.</li>
|
||
<li><a href="https://www.libsdl.org/">SDL2</a> - A cross-platform
|
||
development library designed to provide low level access to audio,
|
||
keyboard, mouse, joystick, and graphics hardware via OpenGL, Direct3D,
|
||
and Vulkan. Bindings are included in Vala and will be available starting
|
||
with Vala 0.52.</li>
|
||
</ul>
|
||
<h3 id="gui-programming">GUI Programming</h3>
|
||
<ul>
|
||
<li><a href="https://www.gtk.org/">GTK</a> - The de facto library for
|
||
GUI development in Vala. Bindings are included with the vala
|
||
compiler.</li>
|
||
</ul>
|
||
<h3 id="ioc-and-dependency-injection">IoC and Dependency Injection</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/nahuelwexd/Vadi">Vadi</a> - An IoC
|
||
Container developed in order to facilitate the usage of dependency
|
||
injection for Vala developers.</li>
|
||
</ul>
|
||
<h3 id="multimedia-processing">Multimedia Processing</h3>
|
||
<ul>
|
||
<li><a href="http://gstreamer.freedesktop.org/">GStreamer</a> - A
|
||
powerful framework for creating multimedia applications.</li>
|
||
</ul>
|
||
<h3 id="numerical-computation">Numerical Computation</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/fusilero/libbalistica">balistica</a> -
|
||
An open source ballistic simulation library. There’s a complete
|
||
calculator <a
|
||
href="https://github.com/fusilero/balistica">here</a>.</li>
|
||
<li><a href="https://github.com/rainwoodman/vast">vast</a> - A project
|
||
for generative modeling in Vala. Think of TensorFlow rewritten in
|
||
Vala.</li>
|
||
</ul>
|
||
<h3 id="templating">Templating</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/arteymix/compose">Compose</a> - A
|
||
functional templating library for Vala.</li>
|
||
<li><a
|
||
href="https://gitlab.gnome.org/GNOME/template-glib">template-glib</a> -
|
||
A library for template expansion which supports calling into GObject
|
||
Introspection from templates.</li>
|
||
</ul>
|
||
<h3 id="text-processing">Text Processing</h3>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/fabrixxm/libcmark-vapi">libcmark-vapi</a> -
|
||
Vala bindings for libcmark, the CommonMark parsing and rendering library
|
||
in C.</li>
|
||
</ul>
|
||
<h3 id="web-development">Web Development</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/AmbitionFramework/ambition">Ambition</a>
|
||
- 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 😉).</li>
|
||
<li><a href="https://github.com/valum-framework/valum">Valum</a> - A Web
|
||
micro-framework entirely written in Vala.</li>
|
||
</ul>
|
||
<h3 id="xml-data-serialization">XML & Data Serialization</h3>
|
||
<ul>
|
||
<li><a href="https://gitlab.gnome.org/GNOME/gxml/">GXML</a> - A GObject
|
||
API for manipulating XML and a Serializable framework from GObject to
|
||
XML.</li>
|
||
<li><a href="https://gitlab.gnome.org/GNOME/json-glib/">Json-GLib</a> -
|
||
Implements a full JSON parser and generator using GLib and GObject, and
|
||
integrates JSON with GLib data types.</li>
|
||
<li><a
|
||
href="https://github.com/rainwoodman/libyaml-glib">libyaml-glib</a> -
|
||
The GLib binding of libyaml, plus a GObject builder that understands
|
||
YAML.</li>
|
||
</ul>
|
||
<p><a href="https://github.com/desiderantes/awesome-vala">vala.md
|
||
Github</a></p>
|