cargo-v5

Crates.iocargo-v5
lib.rscargo-v5
version0.11.0
created_at2024-07-11 22:10:26.497496+00
updated_at2025-09-10 03:17:16.105767+00
descriptionCargo subcommand for managing V5 Brain Rust projects
homepagehttps://vexide.dev
repositoryhttps://github.com/vexide/cargo-v5
max_upload_size
id1300075
size250,860
Gavin (Gavin-Niederman)

documentation

README

cargo-v5

Build, upload, run, and simulate Rust projects written for VEX!

cargo-v5 is a command line tool that simplifies working with VEX projects written in Rust (with a focus on the vexide runtime).

Installation

Install via cargo binstall

Supports all platforms

cargo binstall cargo-v5

Install via Homebrew

Supports macOS & Linux

brew install vexide/vexide/cargo-v5

Install via shell script

Supports macOS & Linux (probably not NixOS)

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/vexide/cargo-v5/releases/latest/download/cargo-v5-installer.sh | sh

Install via PowerShell script

Supports Windows

irm https://github.com/vexide/cargo-v5/releases/latest/download/cargo-v5-installer.ps1 | iex

Build from source

cargo-v5 comes with 2 optional features that enable extra functionality:

  • field-control: Adds a field control tui accesible through cargo v5 field-control or cargo v5 fc.
  • fetch-template: With this feature enabled, cargo v5 new will attempt to fetch the most recent upstream version of vexide-template instead of a built-in one. The command will always fall back to the built-in template.

If you wish to enable both, you can simply enable the full feature.

[!TIP] Pre-built versions of cargo-v5 have all optional features enabled.

All Features

cargo install cargo-v5 --features "full"

Specific Feature

cargo install cargo-v5 --features "field-control"

No Features

cargo install cargo-v5

Usage

Build a vexide project for the V5's platform target:

cargo v5 build --release

Upload a vexide project over USB (you may be prompted to provide a slot number):

cargo v5 upload

View serial output from the current user program:

cargo v5 terminal

Configuration

Upload behavior can be configured through either your Cargo.toml file or by providing arguments to cargo-v5.

cargo-v5 will attempt to find Cargo.toml files with the following structure for providing defaults to some upload options.

[package.metadata.v5]
slot = 1
icon = "cool-x"
compress = true

Properties

  • package.metadata.v5.slot (integer): Set the default program slot to upload to.
  • package.metadata.v5.icon (string) (default "question-mark"): Set the default program icon. (see cargo v5 upload -h for a list of icon strings)
  • package.metadata.v5.compress (boolean) (default true): Configure if program binaries should be gzipped before uploading. It is strongly recommended to keep this at default (true), as disabling compression will greatly increase upload times.

cargo-v5 will also use your project's package.name and package.description fields for program name/description if nothing is explicitly provided.

For a full list of arguments, check

cargo v5 help

Uninstall

If you installed cargo-v5 using the standalone shell or PowerShell scripts above, you can remove it by running this command in your Unix shell:

rm ~/.local/bin/cargo-v5 ~/.config/cargo-v5/cargo-v5-receipt.json

Or by running this in PowerShell:

rm ~\.local\bin\cargo-v5 "$env:LOCALAPPDATA\cargo-v5\cargo-v5-receipt.json"
Commit count: 299

cargo fmt