# Audio plugin frameworks compared: JUCE, iPlug2, DPF, nih-plug and the Sonore SDK

By Sonorie. Published 2026-10-26, last changed 2026-10-26. https://sonore.dev/blog/audio-plugin-frameworks-compared/

There is no single best audio plugin framework in 2026; there is a best one for your licence, language and formats. **JUCE** is the most complete, with AAX, AUv3, iOS and Android, under AGPLv3 or a paid licence above $20,000 a year in revenue. **iPlug2** and **DPF** are permissive C++ alternatives. **nice-plug** is the active Rust option. The **Sonore SDK** is a header-only C++17 framework under Apache-2.0 that builds CLAP, VST3, AUv2, LV2 and a standalone app from one file on Windows, macOS and Linux, plus AAX for Pro Tools with Avid's SDK, and gives coding agents an MCP server to check its API against.

> We make the Sonore SDK, so read its section with that in mind. Everything said here about the other frameworks comes from their own licences, READMEs and release pages as of 25 October 2026, linked in the sources at the end. If something has changed, tell us on [Discord](https://discord.gg/4bvsn8r8CG) and we will correct it.

## At a glance

| Framework | Language | Licence | Closed-source commercial plugin | Latest |
| --- | --- | --- | --- | --- |
| JUCE 9 | C++17 | AGPLv3 or commercial | Free to $20,000 revenue a year, then $40 to $175 per user per month | 9.0.4, October 2026 |
| iPlug2 | C++17 | zlib-like | Free | No versioned releases; active |
| DPF | C++11 | ISC (LADSPA and DSSI headers LGPL) | Free | No tagged releases; active |
| nih-plug | Rust | ISC, VST3 bindings GPLv3 | Free for CLAP; VST3 builds fall under GPLv3 | Maintenance mode since May 2026 |
| nice-plug | Rust | ISC | Free | 0.4.2, September 2026 |
| Sonore SDK | C++17, header-only | Apache-2.0 | Free | 1.0.0, October 2026 |

### Plugin formats

| Framework | CLAP | VST3 | Audio Units | AAX | LV2 | Standalone |
| --- | --- | --- | --- | --- | --- | --- |
| JUCE 9 | Third-party extension | Yes | AUv2, AUv3 | Yes | Yes | Yes |
| iPlug2 | Native | Yes | AUv2, AUv3 | Yes | No | Windows, macOS |
| DPF | Native | Yes | In progress | No | Yes | JACK |
| nih-plug, nice-plug | Native | Yes | No | No | No | Yes |
| Sonore SDK | Native | Yes | AUv2 | Native, with Avid's SDK | Yes | Windows, macOS, Linux |

### Platforms, GUI and agent support

| Framework | Platforms | GUI | For coding agents |
| --- | --- | --- | --- |
| JUCE 9 | Windows, macOS, Linux, iOS, Android | JUCE Components; WebView UIs since JUCE 8 | `llms.txt`, `AGENTS.md`; no official MCP server |
| iPlug2 | Windows, macOS, iOS, visionOS, web; Linux not listed | IGraphics on NanoVG or Skia; WebView | `CLAUDE.md` and nine Claude Code skills |
| DPF | Linux, Windows, macOS | DGL (OpenGL, Cairo, Vulkan), WebView, Dear ImGui | None found |
| nih-plug, nice-plug | Tested on Linux and Windows; limited macOS testing (nih-plug) | egui, iced, VIZIA | None found |
| Sonore SDK | Windows, macOS, Linux | Native editor drawn by the SDK, or HTML in the OS webview | Official MCP server, Agent Skill, `llms.txt`, generated from the headers |

## JUCE

JUCE is the incumbent: a large, module-based C++ framework with plugin formats, a GUI toolkit, DSP, audio devices and networking, on the desktop and on iOS and Android. JUCE 9 shipped on 21 July 2026, and 9.0.4 followed on 12 October. It builds VST3, AUv2, AUv3, AAX, LV2, standalone apps and Unity plugins with CMake or the Projucer. JUCE 8 added WebView-based interfaces and a Direct2D renderer; JUCE 9 added variable fonts and a new SVG parser.

The trade-offs are licence and CLAP. JUCE has been dual-licensed under AGPLv3 and a commercial EULA since JUCE 8; under the EULA, Starter is free up to $20,000 in annual revenue or funding, Indie is $40 per user per month (or $800 perpetual) up to $300,000, and Pro is $175 per user per month (or $3,500 perpetual). The splash screen requirement went in JUCE 8. CLAP, promised for JUCE 9 on two roadmaps, is not in it: CLAP builds use the third-party [clap-juce-extensions](https://github.com/free-audio/clap-juce-extensions).

**Choose JUCE if** you need AUv3, iOS or Android today, want the largest ecosystem of examples and answers, and the licence cost fits your revenue.

## iPlug2

iPlug2 is a permissive (zlib-like) C++17 framework with an unusually wide format list: native CLAP, VST2 for those who still hold a licence, VST3, AUv2, AUv3, AAX, WAM for the web, standalone apps and REAPER extensions. Its IGraphics layer draws with NanoVG or Skia, and a WebView option uses WKWebView and WebView2. Builds have traditionally been Xcode and Visual Studio projects; CMake support arrived in December 2025. It also ships a `CLAUDE.md` and nine Claude Code skills.

The trade-offs: Linux is not a listed platform, there are no versioned releases (you track the repository), and its own issue tracker has asked for better documentation since 2020.

**Choose iPlug2 if** you want a permissive licence together with AAX, AUv3 and iOS, and you do not need Linux.

## DPF

The DISTRHO Plugin Framework is ISC-licensed C++11, built with Make or CMake, and grew out of Linux audio: LV2, LADSPA, DSSI, VST2, VST3 and CLAP, plus JACK standalones. It writes VST3 against its own ISC headers rather than Steinberg's SDK. Interfaces use its DGL toolkit over OpenGL, Cairo or Vulkan, a WebView, or Dear ImGui through DPF-Widgets. Audio Unit support has been in progress since 2024.

**Choose DPF if** Linux and LV2 are first-class targets for you and you want a small, permissive framework.

## nih-plug and nice-plug

nih-plug made Rust a serious option for plugins, with VST3, CLAP and standalone builds, `cargo xtask bundle`, and egui, iced and VIZIA adapters. Since May 2026 its README says it is in maintenance mode and points to **nice-plug**, the community-led fork (ISC, version 0.4.2 on 14 September 2026, still labelled experimental). The fork also fixes a licensing catch: nih-plug's VST3 bindings are GPLv3, while nice-plug uses MIT/Apache-2.0 bindings. Neither builds Audio Units, AAX or LV2.

**Choose nice-plug if** you want to write DSP in Rust and VST3 plus CLAP covers your users.

## No framework: CLAP or VST3 directly

Two format SDKs are now permissive enough to build on without a framework. CLAP is MIT-licensed C headers with a stable ABI (1.2.10, July 2026), and the MIT [clap-wrapper](https://github.com/free-audio/clap-wrapper) turns a CLAP plugin into VST3, AUv2, AUv3, AAX, a standalone app or WebAssembly (0.17.0, October 2026). Steinberg moved the VST3 SDK itself to the MIT licence with VST 3.8 in October 2025. You trade a framework's conveniences (parameters, state, GUI, DSP) for owning every line.

## Sonore SDK

The Sonore SDK is Sonorie's own framework, published under Apache-2.0 in October 2026. It is header-only C++17: one `plugin.cpp` holds a DSP struct, a parameter table and a descriptor, and builds a `.clap`, a `.vst3`, an AUv2 `.component` on macOS, an `.lv2` bundle and a standalone app from one compile, and an `.aaxplugin` for Pro Tools from a second, against the developer's own copy of Avid's AAX SDK. CLAP is the core; every other format adapts the CLAP wrapper, so a plugin cannot behave differently depending on which format a host loaded.

What sets it apart:

- **Native CLAP, VST3 and LV2 on Windows, macOS and Linux, AUv2 on macOS, and AAX for Pro Tools.** JUCE lacks native CLAP, iPlug2 lacks Linux and LV2, DPF's Audio Units are unfinished, and the Rust frameworks have neither Audio Units nor AAX. Sonore has all five, plus a standalone app, under one licence.
- **Apache-2.0, with its patent grant.** Closed-source and commercial plugins, no revenue tier, fee, splash screen or copyleft. The SDK links no framework runtime and no Steinberg C++ SDK: VST3 is written against Steinberg's one-file C API header (BSD-3-Clause).
- **Built for coding agents.** An official MCP server, an Agent Skill and `llms.txt`, all generated from the headers so they cannot describe an API the code does not have. CI checks that the server's search finds every one of the 732 public types in its 271 headers, so "no match" means the name does not exist. See [the agent tools](/#agents).
- **Claims are measured.** Both project templates pass `clap-validator` and `pluginval` at strictness 10 as generated. Every example runs at nine sample rates from 8 kHz to 384 kHz and block sizes from 1 to 8192 with zero allocations on the audio thread. An opt-in gate runs every example's CLAP, VST3 and LV2 under AddressSanitizer and UndefinedBehaviorSanitizer, the threading under ThreadSanitizer, and fuzzes the file parsers and the saved-session loader; another drives every example inside REAPER.
- **Small output.** The saturator example builds to a 494 KB `.clap` on Windows, with every format's code, the native editor and the WebView2 loader in one module.
- **The same DSP in the browser.** The DSP half of the source compiles to WebAssembly unchanged, so a browser preview runs the code the plugin ships, not a model of it.
- **A deep DSP library.** Circuit-level models (a nodal DK engine, the Fuzz Face, the TS-808 drive stage), BS.1770 loudness and true-peak metering, a Dattorro plate, oversampling, FFT and partitioned convolution, phase-vocoder pitch shifting, and dynamics from opto to OTT-style multiband, implemented from published papers rather than adapted from another framework.

Where it is not the right choice yet:

- **It is new.** Version 1.0.0, public since October 2026, with a small community next to JUCE's.
- **No AUv3, iOS or Android, and a new AAX.** AUv3 needs an Xcode app extension, and neither mobile platform is a target. The AAX wrapper is AAX Native, mono and stereo, built on Windows against Avid's SDK 2.9.0; not AAX DSP, AudioSuite or surround, and not yet built on macOS.
- **macOS is proven by CI, not yet at a desk.** Apple's `auval` passes six of the nine example Audio Units on CI, but the CoreAudio, CoreMIDI and Cocoa window paths have not yet been run by a person.

**Choose the Sonore SDK if** you ship desktop plugins, want CLAP and LV2 next to VST3 and Audio Units without a licence bill, or write your plugins with a coding agent.

## Which one should you choose?

- **You need AAX for Pro Tools:** JUCE, iPlug2 or the Sonore SDK, each with Avid's SDK and a PACE signature.
- **You need iOS or Android:** JUCE, or iPlug2 for iOS with a permissive licence.
- **You sell closed-source plugins and want no licence cost at any revenue:** iPlug2, DPF, nice-plug or the Sonore SDK.
- **Linux matters:** DPF, the Sonore SDK, JUCE, or the Rust frameworks.
- **CLAP is your primary format:** iPlug2, DPF, the Rust frameworks or the Sonore SDK build it natively; or write CLAP directly and wrap it with clap-wrapper.
- **You write DSP in Rust:** nice-plug.
- **A coding agent writes most of the code:** the Sonore SDK, for its MCP server and generated skill; iPlug2's skills are the next-closest thing.

## Sources

- JUCE: [licence](https://github.com/juce-framework/JUCE/blob/master/LICENSE.md), [JUCE 9 EULA](https://juce.com/legal/juce-9-licence/), [pricing](https://juce.com/get-juce/), [releases](https://github.com/juce-framework/JUCE/releases), [CMake formats](https://github.com/juce-framework/JUCE/blob/master/docs/CMake%20API.md), [JUCE 8 EULA changes](https://forum.juce.com/t/amendments-to-the-juce-end-user-licence-agreement-for-juce-8/61265), [roadmap, Q3 2025](https://juce.com/blog/juce-roadmap-update-q3-2025/), [what's new in JUCE 9](https://juce.com/whats-new/), [AGENTS.md](https://github.com/juce-framework/JUCE/blob/master/AGENTS.md)
- iPlug2: [repository and README](https://github.com/iPlug2/iPlug2), [licence](https://github.com/iPlug2/iPlug2/blob/master/LICENSE.txt), [CMake support](https://github.com/iPlug2/iPlug2/commit/f2eac985a899dc9bf9cad9b729abedc17e2c8441), [documentation issue](https://github.com/iPlug2/iPlug2/issues/470)
- DPF: [repository and README](https://github.com/DISTRHO/DPF), [licensing](https://github.com/DISTRHO/DPF/blob/main/LICENSING.md), [features](https://github.com/DISTRHO/DPF/blob/main/FEATURES.md)
- nih-plug: [repository and README](https://github.com/robbert-vdh/nih-plug), [maintenance note](https://github.com/robbert-vdh/nih-plug/commit/60e3f5274127de51381798e7f2b5650dce9e3302), [vst3-sys](https://github.com/RustAudio/vst3-sys)
- nice-plug: [repository](https://codeberg.org/RustAudio/nice-plug), [crate](https://crates.io/crates/nice_plug)
- CLAP: [CLAP SDK](https://github.com/free-audio/clap), [clap-wrapper releases](https://github.com/free-audio/clap-wrapper/releases); VST3: [VST3 SDK](https://github.com/steinbergmedia/vst3sdk), [VST 3.8 announcement](https://forums.steinberg.net/t/vst-3-8-0-sdk-released/1011988)
- Sonore SDK: [repository](https://github.com/SonorieAI/sonore-sdk), [platforms and formats](/docs/platforms-and-formats/), [testing](/docs/testing/)

## Questions

### What is the best framework for building audio plugins?

It depends on what you ship. JUCE is the most complete, with AAX, AUv3, iOS and Android, and costs money above $20,000 a year in revenue unless you release under AGPLv3. iPlug2 is a permissive C++ alternative with native CLAP and AAX. DPF suits Linux and LV2 work. nice-plug is the active Rust option. The Sonore SDK is an Apache-2.0, header-only C++17 framework with native CLAP, VST3, AUv2, LV2 and a standalone app on Windows, macOS and Linux, AAX for Pro Tools with Avid's SDK, and the only one here with an official MCP server for coding agents.

### Is JUCE free for commercial plugins?

Up to a point. JUCE 9's Starter licence is free for individuals and companies with annual revenue or funding up to $20,000. Above that, Indie costs $40 per user per month or $800 perpetual up to $300,000, and Pro costs $175 per user per month or $3,500 perpetual. The alternative is the AGPLv3, which requires releasing your plugin's source code.

### What is the best free alternative to JUCE?

For C++ with permissive licensing: iPlug2 (zlib-like) if you need AUv3 or iOS; DPF (ISC) if you target Linux and LV2; the Sonore SDK (Apache-2.0) if you want native CLAP and LV2 alongside VST3, AUv2 and AAX on the desktop, a header-only build, and coding-agent support. For Rust, nice-plug, the community fork of nih-plug.

### Does JUCE support CLAP?

Not natively, as of JUCE 9.0.4 (October 2026). JUCE's roadmaps in 2024 and 2025 promised CLAP for JUCE 9, but it is not in the release. CLAP builds of JUCE plugins use the third-party, MIT-licensed clap-juce-extensions.

### Can I write audio plugins in Rust?

Yes. nih-plug was the standard Rust framework but has been in maintenance mode since May 2026; its community fork nice-plug (ISC, version 0.4.2 in September 2026) is the active project and builds VST3, CLAP and standalone apps. Neither builds Audio Units, AAX or LV2.

### Which audio plugin framework works best with AI coding agents?

As of October 2026, the Sonore SDK is the only one of these frameworks with an official MCP server, so an agent can check that a class or function exists before using it. Its skill, `llms.txt` and server are generated from its headers and checked in CI. JUCE publishes an `llms.txt` and an `AGENTS.md`, and iPlug2 ships Claude Code skills; neither has an official MCP server.
