Skip to content

WebAssembly plugins system #122

@CBenoit

Description

@CBenoit

Basically load .wasm files.

Capabilities:

  • provide new commands,
  • hook on events,
  • call helix commands,
  • access UI stuff…?

At first we could use a basic toml config file or CLI to feed .wasm files to the editor.

A way to configure permissions on a plugin basis could be investigated to use the sandboxing capabilities coming with WASM.
Example with wasmtime:

$ wasmtime --dir=. --dir=/tmp demo.wasm [args…]

(reference)

I think the biggest challenge is to get well-defined interfaces down but let's not fear to break it during early stages.

Later we could investigate embedding a wasm-based scripting language such as Grain or AssemblyScript.

Here are some references:

I'm willing to experiment soon

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-pluginArea: Plugin systemC-enhancementCategory: ImprovementsR-wontfixNot planned: Won't fix

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions