https://github.com/hebilicious/proto-plugins
Monorepo for proto WASM plugins
https://github.com/hebilicious/proto-plugins
Last synced: 5 days ago
JSON representation
Monorepo for proto WASM plugins
- Host: GitHub
- URL: https://github.com/hebilicious/proto-plugins
- Owner: Hebilicious
- Created: 2026-06-02T01:44:41.000Z (7 days ago)
- Default Branch: main
- Last Pushed: 2026-06-02T03:14:51.000Z (7 days ago)
- Last Synced: 2026-06-02T03:22:56.794Z (7 days ago)
- Language: Rust
- Size: 68.4 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Agents: AGENTS.md
Awesome Lists containing this project
README
# proto-plugins
WASM plugins for [proto](https://moonrepo.dev/proto), managed as a Rust monorepo with [moon](https://moonrepo.dev/moon).
## Plugins
| Plugin | Package | Locator |
| --- | --- | --- |
| [HK](plugins/hk) | `hk` | `github://hebilicious/proto-plugins/hk` |
| [Nushell](plugins/nu) | `nu` | `github://hebilicious/proto-plugins/nu` |
| [OCaml](plugins/ocaml) | `ocaml` | `github://hebilicious/proto-plugins/ocaml` |
## Installation
Add one or more plugins to `.prototools`:
```toml
[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:
```shell
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
```
## Development
```shell
proto install
moon run proto-plugins:fmt proto-plugins:test proto-plugins:build
```
Run a plugin-specific Docker e2e test:
```shell
moon run hk:e2e
moon run nu:e2e
moon run ocaml:e2e
```
## Hooks
This repository includes [`hk`](https://hk.jdx.dev/getting_started.html) configuration in `hk.pkl`.
```shell
cargo install hk
hk install --global
```
After the global install, `hk` is a no-op outside repositories that contain an `hk.pkl`.
## Releases
Releases are handled by [`release-plz`](https://release-plz.dev/).
Each plugin is versioned independently and uses monorepo tags matching proto's GitHub locator rules:
- `nu-vX.Y.Z`
- `ocaml-vX.Y.Z`
- `hk-vX.Y.Z`
Merging normal changes into `main` opens or updates the release PR when package versions need to change. The release workflow publishes any package version that does not have a matching monorepo tag, builds the matching WASM plugin, attaches the `.wasm` and `.sha256` assets to the GitHub release, and leaves Cargo publishing disabled.