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
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 non-WASM configuration 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.