Plugins
proto supports a pluggable architecture as a means for consumers to integrate and manage custom tools (languages, CLIs, etc) within proto's toolchain. It's not possible for proto to support everything in core directly, so plugins are a way for the community to extend the toolchain to their needs.
Enabling plugins
Plugins can be enabled by configuring them in
.prototools
or ~/.proto/.prototools
files, within the [plugins]
section.
The map key is the plugin name in kebab-case, which is used as the binary/tool name in proto, and
also the name for configuration and cache purposes. The map value is a
plugin locator string that defines a protocol
and source location.
[plugins]
<id> = "<protocol>://<location>"
Creating plugins
To ease the plugin development process, proto supports 2 types of plugins, a TOML based plugin for basic use cases, and a WASM based plugin for advanced use cases.
Publish a plugin
proto's registry is currently powered by static JSON files located in our official proto repository. View that link for information on how to publish a plugin.