Audio Unified Rust Architecture
(DE-Gag: AUdio RAhmenwerk)
CLAP-first plugin framework for LX Audiolabs.
Partner tooling: agal (agent orientation) · this repo (runtime + formats + build + CLI).
License: GPL-3.0-or-later — see docs/licensing-compliance.md.
| Layer | Name |
|---|---|
| Product | AURA |
| Crates | aura-* |
| Umbrella | aura → use aura::* |
| CLI package | cargo-aura |
| Invoke | cargo aura … (e.g. cargo aura new, cargo aura build --clap -plug <crate> [<crate>...]) |
| Config | aura.toml |
AURA is intentionally narrow. If that is not your stack, use something else — no hard feelings.
| We commit to | We do not ship |
|---|---|
UI: Slint only, via aura-baseview (+ aura-editor host adapter) |
egui, iced, Vizia as first-class UIs |
| Formats: CLAP primary; VST3 / LV2 only on the OS cells below | Audio Units (AU), AAX, VST2; “every format everywhere” |
| Hosts: Bitwig-first, then REAPER and other real CLAP/VST3/LV2 hosts | Pro Tools / Logic-only AU pipelines as a goal; Wine workarounds as product path |
| Platforms: Windows, Linux, macOS | iOS / embedded plugin hosts in v1 |
- Always: Slint UI + baseview host window (embed, scale, keys, clipboard, …).
- Choose renderer (features / project config), not toolkit:
- FemtoVG (OpenGL) — default
- Skia — optional
- Software / wgpu blit — optional
- There is no “raw egui editor” mode and no second UI framework in AURA.
That stack is aura-baseview (window/renderer) + aura-editor (host adapter) + aura-build (compile-time). Every AURA plugin UI goes through it — not an optional addon.
Same hardness as Slint: we pick a primary path and refuse a kitchen-sink matrix.
- CLAP is the better plugin format for what we build — modern, open, one native path on Linux, Windows, and macOS. That is the motto and the default (
cargo aura new, CI validator, Bitwig-first host smoke). - VST3 is a pragmatic second path where the host world actually needs it: Windows and macOS only. Linux VST3 often means Wine or other heavy hacks — we do not treat that as a supported ship path.
- LV2 is a Linux-native path (process/params/state/UI where the ecosystem fits). Not a Windows UI story; not a macOS story (
rust-lv2/ host reality).
Ship matrix (what CI installs / what we call a supported host path):
| Format | Linux | Windows | macOS | Role |
|---|---|---|---|---|
| CLAP | yes | yes | yes | Primary — always |
| VST3 | — | yes | yes | Secondary — Win/mac hosts |
| LV2 | yes | — | — | Secondary — Linux |
Wrappers may still compile on other OSes for unit tests; product support is the table above — just as “Slint only” does not mean “optional egui if you flip a feature.”
AURA is not the right framework. Please use other open source projects that already optimize for that:
| Need | Go here |
|---|---|
| Flexible Rust plugins, egui / iced / multiple UI styles, broad format matrix | nice-plug (NIH-plug successor) |
| CLAP-centric Rust ecosystem / lower-level CLAP work | clack (and related CLAP crates) |
| Full multi-format framework including AU/AAX paths, egui/iced/Vizia options | truce · truce.audio |
We stand on the shoulders of that work (and permissive crates like CLAP bindings). AURA exists so LX can own a Slint + baseview + CLAP-first line — with thin VST3/LV2 where the OS and hosts justify them — without carrying every UI toolkit and every legacy format.
- Slint + baseview only — renderer is a backend choice (FemtoVG / Skia / software); toolkit is not.
- CLAP first, thin formats — one plugin logic API; VST3/LV2 only on the ship matrix; no format-shaped core.
- Framework layout —
crates/·examples/·tools/(product catalogs keep their ownplugins/outside AURA). - One CLI:
cargo aura— parity withcargo truce(new,build,install,doctor). - KISS for humans and agents —
aura.toml, boring paths; orientation in agal.
Copyright © 2026 LX Audiolabs
This project is free software under the GNU General Public License v3.0 or later.
Distributing plugins that link AURA implies GPL obligations for that combined work. Selling with source is fine; closed-only ships are not the goal.
Third-party notes (including Slint triple license — default ship path GPLv3):
docs/licensing-compliance.md.