fprime README

The project's README from github.com/nasa/fprime. As one markdown file: README.md.

A Flight-Proven, Multi-Platform, Open-Source Flight Software Framework



F´ (F Prime) is a component-driven framework that enables rapid development and deployment of spaceflight and other embedded software applications. Originally developed at the Jet Propulsion Laboratory, F´ has been successfully deployed on several space applications. It is tailored but not limited to small-scale spaceflight systems such as CubeSats, SmallSats, and instruments.

Please Visit the F´ Website: https://fprime.jpl.nasa.gov for more information.

What does F´ provide

Learn more about F´ key features.

System Requirements

The following system requirements apply to your workstation for developing F´ applications. To see the list of supported platforms on which F´ applications can run on, see Supported Platforms.

  1. Linux, Windows with WSL, or macOS operating system

  2. git

  3. Python 3.10+, virtual environments, and PIP

  4. Clang or GNU C and C++ compilers (e.g. gcc and g++)

  5. (Optional) A Rust toolchain (cargo and rustc) — required only to build components that depend on Rust. Components that require cargo are skipped when it is not found, and the rest of the framework builds normally.

Click to Expand: How to Verify System Requirements
  1. git --version

  2. python --version and python -m venv -h. Your system might use an alternate like python3 or python3.13. For pip: pip --version. On your system it might be pip3 or pipx.

  3. g++ --version and then create, build, and run a test program. For example, create a file named hello.cpp with contents:

    #include <iostream>
    int main(void){
        std::cout << "Hello, World!" << std::endl;
    }
    

    then build and run it, for example like:

    % g++ -o hi hello.cpp
    % ./hi
    Hello, World!
    
  4. (Optional) cargo --version and rustc --version. Only needed to build components that depend on Rust.

Getting Started

To get started with F´, install the F´ bootstrapping tool with:

pip install fprime-bootstrap

Then, create a new project with:

fprime-bootstrap project

See the HelloWorld Tutorial to guide you through all the steps of developing an F´ project.

New users are encouraged to read through the User Manual and explore the other tutorials.

Getting Help

Discussions

To ask questions, discuss improvements, and ask for help please use the project's GitHub Discussions.

Bug reports

To report bugs and issues, open an issue here.

Community

The F´ Community GitHub Organization contains third party contributions, more documentation of flight software development, and additional resources.

Resources

Meet the Team

The following roles are members of the CCB and per our governance document have decision making power within the framework.

Role Team Member
Community Manager @LeStarch
Community Manager @thomas-bc
Community Manager @kevin-f-ortega
Security Overseer @bitWarrior
CCB Member @bocchino
CCB Member @kevin-f-ortega
CCB Member @SterlingPeet
CCB Member @timcanham
CCB Member @zimri-leisher

Each product has a set of Maintainers who are charged with the day-to-day implementation of the CCB's direction as realized in a by product.

Product Core Maintainer(s)
F Prime @LeStarch, @thomas-bc
F Prime (v3.6.x Maintenance) @SterlingPeet
fprime-tools @thomas-bc, @LeStarch
fprime-gds @thomas-bc, @LeStarch
fpp @bocchino, @Kronos3
F Prime Platforms @kevin-f-ortega, @LeStarch
Security @bitWarrior

Release Notes

The version history and artifacts associated with the project can be found at Releases.

fprime (nasa/fprime)

Searching Database…

11.8K ·GitHub
What is this?F ́ (F Prime) is a component-driven flight software framework originally built at NASA's Jet Propulsion Laboratory for spaceflight and other embedded systems, including CubeSats, SmallSats, and instruments.
Is this a library I import, or a full framework for building a flight software system?It is a full C++ framework: it decomposes software into components with defined interfaces, provides core runtime capabilities like message queues and threads, includes modeling tools that auto-generate code from component specs, and ships a growing library of ready-to-use components plus testing tools.
How do I create a new F ́ project?Install the F ́ bootstrapping tool, then use it to create a new project, and follow the HelloWorld Tutorial for the full workflow.
What do I need installed on my workstation before building F ́ projects?You need Linux, Windows with WSL, or macOS, plus git, Python 3.10+ with virtual environments and pip, and Clang or GNU C/C++ compilers. A Rust toolchain is optional and only needed for components depending on Rust.
What happens if I don't have Rust installed?Components that require cargo are automatically skipped if Rust isn't found, and the rest of the framework still builds normally, so Rust is an optional dependency rather than a hard requirement.
Who is this for, and where does it actually run?It's built for engineers developing flight and embedded software, tailored to small-scale spaceflight systems like CubeSats and SmallSats but not limited to them; the README points to a separate Supported Platforms list for target hardware, which includes Raspberry Pi per the repo topics.
Has F ́ actually flown in space?Yes, the README states F ́ has been successfully deployed on several space applications, having originated at JPL for real missions rather than as a theoretical exercise.
Does F ́ include testing tools?Yes, it provides testing tools for verifying flight software at both the unit and integration levels, alongside the modeling and code-generation tooling.
Creator
nasa
Size
739.7 MB
Stars
11.8K
Age
9y
Commits · 90 Days