Opinionated Rust bindings for the PROS library and kernel.
Important
pros-rs is deprecated and unmaintained; new projects should instead use
vexide, a similar library with features like differential
uploading and std support.
The only dependency of pros-rs outside of Rust is The Arm Gnu Toolchain (arm-none-eabi-gcc).
Read the installation guide for your OS to see how to get things set up.
Steps:
- Run The Arm Gnu Toolchain here
- Install the pros cli, instructions are here
- Install cargo pros with
cargo install cargo-pros
To compile the project just run cargo pros build.
The steps for getting pros-rs compiling are slightly different based on if you use Nix or not.
The Nix flake contains the Arm GNU Toolchain, cargo pros, and pros-cli.
There is a .envrc file included for Nix + Direnv users.
Install arm-none-eabi-gcc and pros-cli from your package manager of choice.
Cargo pros can be installed with cargo install cargo-pros.
This project depends on the Xcode Command Line Tools.
Chances are that if you develop on MacOS you have them already, but if not you can install them with xcode-select --install.
Most of the other dependencies can easily be installed with Homebrew.
Install the Arm GNU Toolchain with
brew install osx-cross/arm/arm-gcc-bin.
Install pros-cli with
brew install purduesigbots/pros/pros-cli.
And you are done! Compile the project with cargo build.
To build projects in this repository for WebAssembly, run cargo pros build -s
This will automatically pass all of the correct arguments to cargo.
If for some reason you want to do it manually, this is the command:
cargo build --target wasm32-unknown-unknown -Zbuild-std=std,panic_abort.
The extra build-std argument is neccesary because this repository's .cargo/config.toml enables build-std but only for core, alloc, and compiler_builtins. WebAssembly does come with std but there is currently no way to conditionally enable build-std.