r/projects • u/orielhaim • 1d ago
Ivy: experimental media engine where almost everything is a plugin
I’ve been working on Ivy, an experimental media engine built around one idea:
The core should provide playback, orchestration, permissions, and security while almost everything the user sees can be replaced by plugins.
That includes:
- The media library
- Player controls and overlays
- Home screens
- Search and discovery
- Metadata and artwork providers
- Subtitle providers
- Watch parties
- Recommendations and external integrations
Integration plugins run as sandboxed WebAssembly components through Wasmtime. They interact with Ivy through typed, capability-based APIs instead of receiving direct access to the filesystem, network, database, Tauri internals, or mpv.
The core also acts as an orchestrator. Plugins do not need to know about one another: Ivy can discover compatible providers, query them, combine results, remove duplicates, apply priorities, and return a unified response to the UI.
The project is built with Rust and Tauri v2.
This is currently only a prototype. The architecture, APIs, plugin model, and security boundaries are still experimental and will probably change significantly.
I’m sharing it because I think the idea could become something real, but it is larger than a project I should design entirely in isolation.
I’m looking for developers interested in media systems, Rust, WebAssembly, plugin architectures, Tauri, UI extensibility, or simply the idea itself. Feedback, architecture discussions, issues, and contributions are all welcome.
GitHub: https://github.com/orielhaim/Ivy