Crequency / KitX

An all-purpose toolbox app that connect everything.
https://kitx.apps.crequency.com
GNU Affero General Public License v3.0
1.17k stars 49 forks source link

[Plugin|Doc] Enhance Plugin-Core Interaction Protocol #288

Open StardustSeemsInk opened 1 month ago

StardustSeemsInk commented 1 month ago

🪦 Is your feature request related to a problem? Please describe.

The current interaction protocol between plugins and the KitX core does not provide a standardized way for plugins to expose their callable functions. This limitation makes it difficult for the KitX core and the plugins to dynamically discover and utilize the available functionalities.

🪧 Describe the solution you'd like

I would like to see the development of an enhanced plugin-core interaction protocol that includes a mechanism for plugins to explicitly expose a list of their callable functions. This would allow the core system and other plugins to easily identify and invoke these functions as needed.

🧾 Describe alternatives you've considered

One alternative we’ve considered is a manual registration process where plugin developers would have to update a central registry with their function list. However, this approach is error-prone and not scalable. Another alternative is to use reflection to automatically detect functions, but this could lead to security and performance issues. And most importantly, we shoud develop a doc that discribe the protocol

📎 Additional context

This feature would significantly improve the interoperability and extensibility of our system, making it easier for developers to create powerful and integrated plugin solutions. Documentation and developer guidelines should be updated to reflect these changes, and a set of best practices for exposing functions should be established.

(This issue is created with the assistance of an LLM.)

github-actions[bot] commented 1 month ago

Tracked by #210 .