#frc #wpi-lib #robot #bindings #programs #framework #builds

arfur

A set of bindings and a framework that builds on top of the WPILib suite, enabling Rust-based robot programs in FRC

2 releases

0.0.2 Nov 4, 2022
0.0.1 Sep 21, 2022

#154 in Robotics

MIT license

655KB
13K SLoC

Arfur

License · Docs

Crates.io docs.rs Codecov

Arfur is a set of bindings and a framework that builds on top of the WPILib suite, enabling Rust-based robot programs in FRC.


use arfur::prelude::*;

fn main() -> Result<()> {
    let robot: Robot = RobotBuilder::default().initialize()?;

    // Having a `Robot` type is proof that the HAL has been initialized. We can
    // use to construct all kinds of handles!

    Ok(())
}

Features

  • Rust bindings to WPILib: use WPILib's official C++ implementation
  • Type safety at its finest: strong typing ensures that undefined behaviour cannot happen
  • An efficient robot: Stay at C++'s speed, but implicitly use memory-safe concepts as much as possible
  • A powerful ecosystem: hook into Rust's ecosystem for logging, mathematical computations, and more

Getting started

For now, sift through the crate's examples and documentation. There's much more to come!

Dependencies

~1–4MB
~63K SLoC