n2o4
The n2o4
crate provides safe, idiomatic Rust bindings to the APIs of cFE and OSAL, the libraries of the Core Flight System (cFS).
IMPORTANT NOTE
This is a work in progress. While enough has been written to allow some classes of cFS application to be written, bindings for many parts of the API don't currently exist.
If you need or want to use some part of the API for which a binding doesn't exist yet, consider helping to flesh out the crate!
Limitations
Currently, n2o4
only supports the following:
- cFE tag
v7.0.0-rc4
- OSAL tag
v6.0.0-rc4
Extending support to other versions is an open issue (#1).
Using this crate in your cFS app
See USING.md for how to set everything up to use n2o4
(and Rust in general) in your cFS application.
Also, take a look at a sample app demonstrating the use of n2o4
.
Contributing
- Found a bug or have a feature request? If one hasn't been created already, please create an issue.
- Have a question? Start a discussion.
- Have you written a new feature or a bug fix? Please make a pull request.
cfs-sys
Under the hood, n2o4
uses cfs-sys
(not to be confused with the crate of the same name on crates.io), which provides mostly machine-generated, unsafe
bindings to the cFS and OSAL APIs.
License
This crate is licensed under the Apache License version 2.0. This is the same license cFE and OSAL are released under.
About the name
N2O4 is the chemical formula for dinitrogen tetroxide (aka nitrogen tetroxide). As cFS is intended for spacecraft flight software, and the Rust community has a long history of oxidation-related names, it seems appropriate to give this crate the name of a rocket propellant—one that's an oxidizer.