leodos_libcfs/lib.rs
1#![cfg_attr(not(feature = "std"), no_std)]
2//! # leodos-libcfs: A Safe Rust Wrapper for the Core Flight System
3//!
4//! `leodos-libcfs` provides safe, idiomatic, and zero-cost wrappers around the C APIs of the
5//! NASA Core Flight System (cFS), including the Core Flight Executive (CFE),
6//! Operating System Abstraction Layer (OSAL), and Platform Support Package (PSP).
7//!
8//! This crate is designed to enable the development of cFS applications in Rust
9//! with a high degree of safety and ergonomics, leveraging Rust's ownership,
10//! borrowing, and type system to prevent common errors found in C-based cFS development.
11//!
12//! ## Key Features
13//!
14//! - **Safe Abstractions**: RAII guards for resource management (e.g., `Pipe`, `Table`, `Mutex`),
15//! preventing resource leaks.
16//! - **Type Safety**: Generic wrappers for message passing (`Queue<T>`), tables (`Table<T>`),
17//! and critical data stores (`CdsBlock<T>`) ensure data integrity at compile time.
18//! - **Ergonomic API**: A high-level application framework (`app::App` builder) simplifies
19//! the boilerplate of a cFS application.
20//! - **Comprehensive Coverage**: Wrappers for major cFE services (ES, EVS, SB, TBL, TIME)
21//! and key OSAL/PSP functionalities.
22#![deny(missing_docs)]
23
24pub(crate) mod ffi;
25pub mod cell;
26pub mod cfe;
27pub mod error;
28pub mod log;
29pub mod os;
30pub mod psp;
31pub mod status;
32pub mod runtime;
33pub mod macros;
34pub mod app;
35pub mod util;
36pub use util::cstring;
37pub use util::string_from_c_buf;
38#[cfg(feature = "cfdp")]
39pub mod cf;
40#[cfg(feature = "bp")]
41pub mod bp;
42#[cfg(feature = "nos3")]
43pub mod nos3;