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

Plugin support #3

Open
srid opened this issue Feb 7, 2024 · 6 comments
Open

Plugin support #3

srid opened this issue Feb 7, 2024 · 6 comments

Comments

@srid
Copy link

srid commented Feb 7, 2024

Congrats on open sourcing what appears to be a viable open source alternative to Raycast!

Mostly as a learning/hobby project. It isn't (yet) intended to be used outside of experimentation. I got the idea while writing a Raycast plugin and getting frustrated with their limitations.

If you ever wish to take this beyond a personal hobby project, it would be great to add support for user-written plugins. How about Rust WASM (in addition to whatever friendlier way to write plugins)?

@MatthiasGrandl
Copy link
Owner

Jup for sure worth exploring. I definitely need more time to flesh out how things are going to work before thinking about making things more complicated by implementing a plugin system which would require some stable API...

@uncenter
Copy link

uncenter commented Feb 7, 2024

Wow yeah this is amazing. I'm new to Rust and wouldn't be of much help in developing a plugin system but I want to second that idea, there is definitely a lot of interest in moving away from Raycast for me and for many others!

@srid
Copy link
Author

srid commented Feb 19, 2024

@MatthiasGrandl This quite looks interesting for wasm plugin support: https://extism.org/

@arlyon
Copy link

arlyon commented Apr 3, 2024

I would recommend instead just going for web assembly components. I have a project I have been hacking on to test them and you simply define an interface in their IDL (wit) and then use their bindgen tools to generate rust interfaces to implement.

https://github.com/arlyon/litehouse/blob/main/crates/plugin-macro/wit/plugin.wit

@MatthiasGrandl
Copy link
Owner

@arlyon do you have some recommended resources to read up on webassembly components? It does sound like a good fit.

@arlyon
Copy link

arlyon commented Apr 4, 2024

There is a bunch of scattered work but it is still quite new (though capable) so it takes a bit of digging sometimes. I want to stress it is very early days still but already quite functional.

The really nice thing with wit is being able to expose host apis to plugins (such as networking, the filesystem, or any other arbitrary functions). if you don't want to give a plugin network access it can't have it, and they are pretty lightweight since they can share the http stack with the host.

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

No branches or pull requests

4 participants