Vscode extensions using wasi

Seems like using wasi as a vscode extension would be great - at the moment lots of extensions have native chunks. If they could be compiled to wasi then the wasm could be shipped with the js/ts as a single extension.

It doesn’t seem like it’s a priority to the vscode team at the moment but feels like a golden opportunity. We would need one native wasi runner extension and then everyone else can just depend on that.

And when vscode natively supports wasi as it’s a standard it should be easy to drop that dependency.

Just feels like this would be a great use of wasi to really make vscode extensions easier.

What does this have to do with Rust?

Yeah I can see it doesn't look like a rust question but these days rust gets everywhere!
Rust is the language of choice for targeting wasm. All the tooling around wasi is in rust.

And while I like vscode I'd prefer to write the extensions in rust rather than typescript.

I found myself thinking the same thing a few weeks ago. It's not strictly Rust related, but I was also looking for a way to integrate Rust code into a vscode plugin. It's a shame that the vscode team doesn't seem that interested in Wasm, but the ecosystem is still evolving and hopefully they'll get around to it sooner or later. I hope that in the future we can just compile code once with a Wasm target and easily integrate the module to not only vscode but other IDEs and systems as well.

1 Like

You can use https://neon-bindings.com/ to write VS Code extensions in Rust. See https://github.com/matklad/fall/tree/bd6a140bbe31320444ea941e1d1d1f7db0718079/code for an example (uses old version of neon).

2 Likes

Thanks, I tried neon but I think I hit a wall with NODE_MODULE_VERSION incompatibility issues when trying to integrate it with vscode and decided it wasn't worth it until they implement N-API support. Maybe I overlooked something though, I think I'll make a new thread for it later. Currently the extension downloads Rust binaries and executes a CLI, native modules would be a big improvement I think.

1 Like

This topic was automatically closed 90 days after the last reply. We invite you to open a new topic if you have further questions or comments.