bazel-contrib / bazel-gazelle

Gazelle is a Bazel build file generator for Bazel projects. It natively supports Go and protobuf, and it may be extended to support new languages and custom rule sets.
Apache License 2.0
1.2k stars 380 forks source link

Feature request: Option to create plugin in wasm #1388

Open sluongng opened 1 year ago

sluongng commented 1 year ago

Inspired by https://github.com/knqyf263/go-plugin and https://extism.org/blog/announcing-extism/.

Gazelle plugin system could be greatly extended by dynamically load web assembly(wasm) plugin at runtime.

The benefit of wasm plugin is that it could be written in a different language: Go, Rust, C, Haskell, etc... so the parser logic does not need to be written in Go.

Depending on the design, plugins could also be supplied dynamically at runtime instead of at compile time, which means that we don't need to recompile Gazelle binary to add / update / remove plugin.

I think this technology could be very exciting for both gazelle and Bazel in general.

nilslice commented 1 year ago

Hi, noticed this in a GitHub issue search -- please feel free to join us on Discord if you'd like to chat about Extism! I'd be very interested in learning more about your requirements.