Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open points for plugins system #2197

Open
AmmarAbouZor opened this issue Feb 10, 2025 · 1 comment
Open

Open points for plugins system #2197

AmmarAbouZor opened this issue Feb 10, 2025 · 1 comment
Assignees
Labels
new newly created issue

Comments

@AmmarAbouZor
Copy link
Member

We will gather here the open points that must be implemented for the plugins support currently on branch plugin_support until we can merge the branch into master.

This issue is made as brainstorming to gather all open points before deciding when and how they'll be implemented.

Each developer can add their open tasks in a comment here.

@github-actions github-actions bot added the new newly created issue label Feb 10, 2025
@AmmarAbouZor
Copy link
Member Author

AmmarAbouZor commented Feb 10, 2025

Open issues:

  • Cache support for Plugins Manager:
    Currently, plugins manager scans plugins directory on app start loading each plugin to get its metadata and configurations schema and other needed data. This could affect startup time in case of many plugins, even if users won't be using those plugins.
    caching the plugins info in a file while keeping track on the changes in plugins will avoid loading the plugins on each start up.

  • GUI for plugin list:
    Currently the plugins list is a json serialization for the structs only. These infos need to be rendered as a list.

  • Improve adding plugins manually:
    Currently the users must create a directory in chipmunk home directory with the plugins name. This would be better if we provide a wizard to add/update plugins in the fron-end.

  • Set constrains on plugins file name and toml file:
    Currently users can provide the plugin binary wasm file with any name as long as there is one wasm file only in the plugin directory. The same applies for toml file. We need to set constrains for naming here

  • Live validation for plugins configurations:
    Currently plugins can validate their configuration by the start of session only. It would be helpful to allow plugins to do their validation live before starting the session.

  • Disable Raw export for parser plugins:
    Parser plugins deliver their parsed data as string currently, and the raw export function will write this string as bytes only. I think we should disable this option for plugins. Other solution will be to force the plugins to provide two messages for each log: Parsed text and binary array, which will have big impact on the performance.

  • Byte Source integration in frontend:
    Byte source plugins are implemented in backend but have the very initial implementation on the fronend (Type definitions only). We need to decide if we want to support the byte source plugins in this iteration, or if it would be better to postpone it.

  • Implementing Parser Plugin:
    It would be helpful to actually implement a new parser with the plugin system to get better evaluation for the system. A good candidate would be a protobuf parser.

  • Tests & Benchmarks:
    We need to have function to run tests on plugins without having to run it inside Chipmunk application. For testing we need tests that accepts the path for the plugin path, its serialized configurations and the path for its input source.
    The same will be needed for benchmarks as well.

  • Publish plugin-api on crates.io:
    The crate plugins-api should be available for developers without having to clone chipmunk main repo.

  • Templates for plugins:
    We need to provide templates on GitHub for each plugin, so developers can use them when creating plugins. The templates should be suited to use with cargo-generate

  • Move parser & sources configuration to backend:
    Currently, the configurations of the built-in parser and sources are hardcoded in the frontend, but it would be better to move those infos to the backend and build the frontend in a generic way in which it retrieves all needed infos from backend without having any hardcoded configurations.

  • Rework plugins in app menu:
    All plugins commands are gathered withing the plugin main menu, but it would be better to spread them on their corresponding menu and remove the plugins main menu completely

  • Plugins Documentation with online book:
    Basic documentation for developing plugins is contained now inside a readme file currently. This needs to be converted into an online book with more details. We can create a stand-alone md book for that or append it to the md book for Chipmunk

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
new newly created issue
Projects
None yet
Development

No branches or pull requests

3 participants