Idiomatic, safe Rust bindings to cFE and OSAL APIs (placeholder for off-crates.io project)

no_std, flight-software, osal, cfe, cfs



The n2o4 crate provides safe, idiomatic Rust bindings to the APIs of cFE and OSAL, the libraries of the Core Flight System (cFS).


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!

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.



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.


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.

Launch of the Gemini 3 spacecraft on a Titan II rocket, powered in part by N2O4 (the chemical, not the Rust crate)