Ivy-Interactive / Ivy-Interactive/Rusty-Framework
[Subsystem] Implement Plugin Subsystem Architecture (Port of Ivy.Plugin.Abstractions)
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 3
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Description
Problem Statement
The original C# Ivy-Framework features Ivy.Plugin.Abstractions and a dynamic plugins/ directory system for third-party extensions, custom widget registrations, and backend message handlers.
Rusty-Framework currently lacks a plugin system. Developers cannot package or load third-party extension modules dynamically into a rusty-server application.
Missing Functionality
PluginandPluginModuletrait definitions in Rust.- Dynamic widget and custom WebSocket message handler registration mechanisms.
- Plugin lifecycle hooks (
initialize,register_widgets,register_handlers,shutdown). - Schema validation for plugin configuration.
Proposed Architecture & Design
- Create a
rusty-pluginmodule (or crate) definingPlugin,PluginContext, andPluginRegistry. - Add plugin registration methods to
rusty-server::ServerBuilder. - Support plugin-scoped state injection and middleware registration.
- Implement an example plugin crate (
rusty-plugin-example) demonstrating custom widget and route registration.
Acceptance Criteria
-
Plugintrait defined with lifecycle hooks (initialize,register_widgets,shutdown). -
rusty-serversupports loading and registering plugins during startup. - Custom widgets and message handlers registered by plugins render and execute cleanly.
- Example plugin implementation provided with unit and integration tests.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the proposed rusty-plugin module or crate, rusty-server::ServerBuilder, and the stated lifecycle hooks and registration mechanisms. Compare the original C# Ivy.Plugin.Abstractions behavior with the requested Rust architecture. Done means plugins can load during startup, register widgets and message handlers, support configuration validation, and include the example plugin with unit and integration tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100