WASM plugins for proto, managed as a Rust monorepo with moon.
| Plugin | Package | Locator |
|---|---|---|
| HK | hk |
github://hebilicious/proto-plugins/hk |
| Nushell | nu |
github://hebilicious/proto-plugins/nu |
| OCaml | ocaml |
github://hebilicious/proto-plugins/ocaml |
Add one or more plugins to .prototools:
[plugins]
hk = "github://hebilicious/proto-plugins/hk"
nu = "github://hebilicious/proto-plugins/nu"
ocaml = "github://hebilicious/proto-plugins/ocaml"
[tools.hk]
version = "1.46.0"
[tools.nu]
version = "0.112.2"
[tools.ocaml]
version = "5.4.1"
Or add them explicitly:
proto plugin add hk github://hebilicious/proto-plugins/hk
proto plugin add nu github://hebilicious/proto-plugins/nu
proto plugin add ocaml github://hebilicious/proto-plugins/ocaml
proto install
moon run proto-plugins:fmt proto-plugins:test proto-plugins:build
Run a plugin-specific Docker e2e test:
moon run hk:e2e
moon run nu:e2e
moon run ocaml:e2e
This repository includes hk configuration in hk.pkl.
cargo install hk
hk install --global
After the global install, hk is a no-op outside repositories that contain an hk.pkl.
Releases are handled by release-plz.
Each plugin is versioned independently and uses monorepo tags matching proto’s GitHub locator rules:
nu-vX.Y.Zocaml-vX.Y.Zhk-vX.Y.ZMerging normal changes into main opens or updates the release PR. Merging the release PR creates the package tags, builds the matching WASM plugin, attaches the .wasm and .sha256 assets to the GitHub release, and leaves Cargo publishing disabled.