https://github.com/httnn/nih-plug-webview
A webview UI library for nih-plug. Currently supports macOS and Windows.
https://github.com/httnn/nih-plug-webview
nih-plug user-interface webview
Last synced: 8 months ago
JSON representation
A webview UI library for nih-plug. Currently supports macOS and Windows.
- Host: GitHub
- URL: https://github.com/httnn/nih-plug-webview
- Owner: httnn
- License: isc
- Created: 2022-10-10T19:25:52.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2025-01-06T15:01:46.000Z (over 1 year ago)
- Last Synced: 2025-06-13T22:55:36.396Z (about 1 year ago)
- Topics: nih-plug, user-interface, webview
- Language: Rust
- Homepage:
- Size: 131 KB
- Stars: 72
- Watchers: 5
- Forks: 12
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# nih-plug-webview
**Warning: work in progress, not production-ready yet.**
Experimental webview editor for [nih-plug](https://github.com/robbert-vdh/nih-plug) using [wry](https://github.com/tauri-apps/wry).
Built on top of [baseview](https://github.com/RustAudio/baseview).
## Current status
I've only been able to test this on macOS so far on which it has been working quite robustly.
Now that wry officially supports attaching to an existing window handle, I'm hoping that Windows also works but this needs to be verified.
On macOS there is an unresolved issue where pressing the escape key in Ableton Live will lead to a crash.
I've reported this to Ableton, and I'm currently mitigating this by consuming the escape keypress behind the scenes.
## Features
- send arbitrary JSON values back and forth to the webview using Serde
- resizable plug-in window
- drag and drop files with full paths
- callback for deciding which key events from DAW to consume
- customisable background color for when the view is still loading (avoid initial flash of white)
- use devtools
## Usage
[Check out the example.](https://github.com/maxjvh/nih-plug-webview/blob/main/example/src/)
Build the example with `cargo xtask bundle gain` in the `example` folder.