# proto

![Crates.io](https://img.shields.io/crates/v/proto_cli) ![Crates.io](https://img.shields.io/crates/d/proto_cli)

proto is a pluggable next-generation version manager for multiple programming languages. A unified toolchain.

- [Learn more](https://moonrepo.dev/proto)
- [Documentation](https://moonrepo.dev/docs/proto)
- [Get started](https://moonrepo.dev/docs/proto/install)
- [Supported tools](https://moonrepo.dev/docs/proto/tools)

> proto powers [moon's](https://github.com/moonrepo/moon) toolchain!

## Why use proto?

- Lightspeed! With Rust, we can guarantee exceptional performance.
- Multi-language. A single CLI for managing versions for all of your languages.
- Cross-platform, for a consistent experience across machines and teams.
- Contextual version detection, ensuring the correct version of a tool is always used.
- Checksum verification, ensuring a tool came from a trusted source.
- Detects and infers from a language's ecosystem for maximum compatibility.
- Pluggable architecture via WASM, enabling custom integrations.

## Supported languages

- Bun
- Deno
- Go
- moon
- Node (and npm, pnpm, yarn)
- Python (and poetry, uv)
- Ruby
- Rust
- ... [and more via plugins!](https://moonrepo.dev/docs/proto/tools)

## Contributors

Special thanks to the wonderful people who have contributed to this project:

[![Contributors](https://contrib.rocks/image?repo=moonrepo/proto)](https://github.com/moonrepo/proto/graphs/contributors)
