proto v0.52 - Custom backend plugins
In this release, we're excited to announce custom backend plugins!
Custom backend plugins
In proto v0.47 we announced support for backend plugins, starting with asdf. However, the initial plan was for backend plugins to be an internal only feature, maintained by the proto team directly. After some thought, we realized that this was a bit limiting, and would ultimately slow down the growth of proto's ecosystem. So, in this release, we're opening up backend plugins to the community!
Backend plugins are a superset of tool plugins that inherit all of their functionality, with additional backend specific functionality layered on top. This means that backend plugins can define and manage multiple tools, and also handle installation, version resolution, and more.
To support backend plugins, we've made some changes to the configuration format. Backend plugins can
be configured with the new [plugins.backends]
section, and
tool plugins have moved to the [plugins.tools]
section. For
backwards compatibility, the old [plugins]
section will still work for now.
[plugins.backends]
my-backend = "https://raw.githubusercontent.com/my/backend/master/proto-plugin.wasm"
Breaking: New backend identifier format
To support the backend plugins going forward, we've had to make a breaking change to the way
backends are identified in configuration. Previously, the backend was specified by prefixing the
version like asdf:1.2.3
, or with the [tools.*.backend]
setting. This was very restrictive.
Going forward, the backend can only be prefixed as part of the tool identifier.
# Before
zig = "asdf:0.13.0"
# After
"asdf:zig" = "0.13.0"
Other changes
View the official release for a full list of changes.
- Updated lockfiles to track
os
andarch
information when applicable.
Looking for contributors
We have a lot of cool stuff planned for proto, like more official backends and tools, improved workflows, an official registry, and more! So if you're interested in Rust or WASM, we would love and appreciate your help. Feel free to ping us on Discord!