---
slug: proto-v0.4
title: proto v0.4 - Rust support, user configs, and more
authors: [milesj]
tags: [proto, rust, config]
image: ./img/proto/v0.4.png
---

With this release, we've added Rust language support, user configs, and a few other improvements.

<!--truncate-->

## Rust language support

We're very excited to announce support for the [Rust language](https://www.rust-lang.org/) in proto.
This is our first language addition since the initial release, and we're very happy with how it
turned out.

```shell
$ proto install rust stable
```

For those of you unfamiliar with Rust, Rust provides its own toolchain manager through
[`rustup`](https://rustup.rs/) — a very powerful one at that. We don't want to reinvent the wheel
here, so instead of downloading and installing Rust into proto's toolchain, we chose to call
`rustup` commands under the hood. Because of this, Rust support in proto requires Rust/Cargo to be
pre-installed on your system. Jump to the [docs for more information](/docs/proto/tools).

All in all, the cool thing about supporting Rust in proto is that you can standardize all your tools
in a single config for [`proto use`](/docs/proto/commands/use).

```toml title=".prototools"
node = "18.2.0"
rust = "1.68.0"
```

## New user configuration

We have a long list of ideas and features that would be cool to support in proto, but not as the
default functionality. Because of this, we required a way for users to opt-in to this functionality,
and have landed on a new user configuration located at `~/.proto/config.toml`.

```toml title="~/.proto/config.toml"
auto-install = true
```

This new configuration only supports a single setting (for now), `auto-install`, that when enabled,
will automatically install a missing tool for the detected version when running
[`proto run`](/docs/proto/commands/run) (or a shim).

## New `proto upgrade` command

We now provide a [`proto upgrade`](/docs/proto/commands/upgrade) command for upgrading proto itself.
This will download the latest version and replace the binary at `~/.proto/bin/proto`.

```shell
$ proto upgrade
```
