website/docs/proto/plugins.mdx
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.
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.tools]
<id> = "<protocol>://<location>"
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.
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.