website/blog/2025-02-25_proto-v0.47.mdx
In this release, we're stoked to release backends, a new type of plugin that enables the use of 3rd-party plugins.
<!--truncate-->asdfSince proto's inception, we've been asked the question "how's this different than asdf?", or "why not just use asdf?". The answer to both of these questions is still the same 3 things:
With all that said, asdf has a massive plugin registry compared to proto's, and it would take a really long time for proto to reach parity. Because of this, we've been working on a new plugin type called a "backend", which allows 3rd-party plugins to be utilized within proto for downloading and installing tools, locating executables, and more.
Of course, our first backend is asdf. To install a tool from asdf's
registry, prefix the version in .prototools with asdf:, or
configure the backend setting.
# For this single version
zig = "asdf:0.13.0"
# For all versions
zig = "0.13.0"
[tools.zig]
backend = "asdf"
This backend implementation does not use the asdf binary itself, and instead emulates the
environment as best we can. Because of this, some tools may not be usable through proto, especially
those that rely on asdf itself. Furthermore, the 2 bullet points above are unfortunately still
restrictions: This is Unix only and requires Bash.
In the next release, we'll investigate the use of Scoop or Chocolatey as a potential backend for Windows users. If you're interested in this endeavor, send us a message in Discord!
poetryIn v0.45 we introduced 3 new tools, and in this release, we're releasing 1 more! We want to expand our Python support, and since we already support pip and uv, we wanted to also support Poetry, which has been requested by the community many times now. Poetry installation works quite differently than other tools, so please report any issues or improvements.
$ proto install poetry
Until now, proto was a stand-alone binary that existed on PATH and was not coupled to proto's
store (~/.proto) outside of possibly existing in ~/.proto/bin for convenience. Over the past
couple of releases, we've been working on supporting proto as an
official tool within proto, so
commands like proto install proto and proto pin proto 0.45 actually function correctly.
Starting in this release, when proto is installed via proto, either through proto install or
proto upgrade, a shim will be created at ~/.proto/shims/proto, allowing for runtime version
detection and pinning. This basically means you can now pin a project to a certain version of proto
like any other tool, for example:
proto = "0.46"
View the official release for a full list of changes.