casperfpga_rs

license docs rustc build status Codecov

A Rust library for interfacing with CASPER Collaboration FPGA devices. Unlike the python version, this library is intended for mission-critical deployments, where breaking changes, memory bugs, and slow/interpreted languages are unacceptable. Additionally, this library will be rigorously tested, documented, and utilize fully specified interfaces.

Goals

Future Work

Device Tree

Currently, .fpg files are the source of automatically generating typesafe interfaces for a given design. If CASPER adopts device tree, we'd want to write a parser that performs the same translation.

Python Integration

We started working on a python wrapper utilizing py03 to act as a multipurpose rewrite of the python version. This won't be as typesafe (of course), but should act as a more stable and tested stand-in for the previous python version.

Contributing

Please run cargo +nightly fmt --all before commiting as well as check clippy with cargo clippy --all.

License

casperfpga_rs is distributed under the terms of both the MIT license and the Apache License (Version 2.0).

See LICENSE-APACHE and LICENSE-MIT for details.