A graphical user interface toolkit for audio plugins.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Weird Constructor f10ff624d5 Fix compilation issues with recent femtovg 5 months ago
examples Changed the List widget to also support detached scrolling 6 months ago
res started work on a text field for help texts 2 years ago
src Fix compilation issues with recent femtovg 5 months ago
.gitignore Going to revive HexoTK with a new widget model 1 year ago
COPYING Relicensed to GPL-3.0-or-later. 2 years ago
Cargo.toml Changed markdown crate to pulldown-cmark 7 months ago
README.md Relicensed to GPL-3.0-or-later. 2 years ago
_test.sh very basic text input can happen, still incomplete 2 years ago
rustfmt.toml tweak rust format 8 months ago


HexoTK - A graphic user interface toolkit for audio plugins

State of Development

Super early!


cargo run --example demo

TODO / Features

  • Everything

Known Bugs

  • The ones you encounter and create as issues on GitHub.

Support Development

You can support me (and the development of this project) via Liberapay:

Donate using Liberapay


This project is licensed under the GNU Affero General Public License Version 3 or later.

The DSP code that was partially translated from LMMS C++ to Rust and was originally released under GNU General Public License Version 2 or any later. The former authors were:

  • Copyright (c) 2006-2014 Tobias Doerffel <tobydox/at/users.sourceforge.net>
  • Copyright (c) 2014 grejppi <grejppi/at/gmail.com>

The fonts DejaVuSerif.ttf and DejaVuSansMono.ttf under the license:

Fonts are (c) Bitstream (see below). DejaVu changes are in public domain.
Glyphs imported from Arev fonts are (c) Tavmjong Bah (see below)

Why GPL?

Picking a license for my code bothered me for a long time. I read many discussions about this topic. Read the license explanations. And discussed this matter with other developers.

First about why I write code for free at all, the reasons are:

  • It's my passion to write computer programs. In my free time I can write the code I want, when I want and the way I want. I can freely allocate my time and freely choose the projects I want to work on.
  • To help a friend or member of my family.
  • To solve a problem I have.
  • To learn something new.

Those are the reasons why I write code for free. Now the reasons why I publish the code, when I could as well keep it to myself:

  • So that it may bring value to users and the free software community.
  • Show my work as an artist.
  • To get into contact with other developers.
  • To exchange knowledge and help other developers.
  • And it's a nice change to put some more polish on my private projects.

Most of those reasons don't yet justify GPL. The main point of the GPL, as far as I understand: The GPL makes sure the software stays free software until eternity. That the end user of the software always stays in control. That the users have the means to adapt the software to new platforms or use cases. Even if the original authors don't maintain the software anymore. It ultimately prevents "vendor lock in". I really dislike vendor lock in, especially as developer. Especially as developer I want and need to stay in control of the computers and software I use.

Another point is, that my work (and the work of any other developer) has a value. If I give away my work without any strings attached, I effectively work for free. This compromises the price I (and potentially other developers) can demand for the skill, workforce and time.

This makes two reasons for me to choose the GPL:

  1. I do not want to support vendor lock in scenarios for free. I want to prevent those when I have a choice, when I invest my private time to bring value to the end users.
  2. I don't want to low ball my own (and other developer's) wage and prices by giving away the work I spent my scarce private time on with no strings attached. I do not want companies to be able to use it in closed source projects to drive a vendor lock in scenario.

We can discuss relicensing of my code or project if you are interested in using it in a closed source project. Bear in mind, that I can only relicense the parts of the project I wrote. If the project contains GPL code from other projects and authors, I can't relicense it.