[Suggestion] Plugin system for the Rust rewrite
See original GitHub issueRust can export its libraries to .dll, .plugin and .so. So basically I would export a library and its main function would be called. You could import a library containing Graviton’s API.
use graviton;
fn main() {
}
https://gist.github.com/CoolOppo/67b452c125bb0db3212a9fbc44c84245
Issue Analytics
- State:
- Created 2 years ago
- Comments:7 (5 by maintainers)
Top Results From Across the Web
Plugins in Rust: The Technologies
In this first article I will analyze the different ways in which our plugin system may be implemented in Rust. Note that I'm...
Read more >Awesome Rewrite It In Rust - A curated list of replacements ...
May I suggest a rename to "Alternatives in Rust (AIR)"? To add to this list: Starship - an alternative to your native shell...
Read more >rust-unofficial/awesome-rust: A curated list of Rust code ...
A curated list of Rust code and resources. Contribute to rust-unofficial/awesome-rust development by creating an account on GitHub.
Read more >Helix: A Neovim inspired editor, written in Rust
Lots of people are requesting a plugin extension system, ... When I want to rewrite a string in vim, I unconsciously type `ci"`; ......
Read more >Something like module/plugin loading in rust - help
I would love to get some feedback on the ideas or alternative suggestions how to approach this ... My first steps trying to...
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Update: Graviton Desktop now loads extensions installed in
<HOME_DIR>/.graviton/extensions
So far, the idea is this:
Extensions will have a single manifest file, (probably Cargo.toml). But, inside the extensions they can freely load more extensions which have it’s own information.
Example (from GitExtension):
Every loaded extension will provide a
get_info
method which will return information about the Extension, in the case of the Git Extension I am just passing the values from the Cargo.toml, which are copied on compile time.Because of this idea that Extensions can load multiple extensions, one extension could contain a group of extensions. To make it easier, it would be handy if all the extensions informations from the same group had something like a parent id, which pointed to the parent extension ID that would be defined in the manifest file. So, although they would be separate extensions, they would still be grouped via the parent ID.