TopGit
GitHub Repo Review

F Prime Flight Software Framework by NASA JPL

nasa/fprime

The F Prime flight software framework (F´) is NASA JPL's open-source, component-driven system for building spaceflight and other embedded software in C++. You describe your flight software as discrete components with defined interfaces, model the wiring in FPP, and let the toolchain generate the boilerplate C++ around your logic — then test it at the unit and integration level before it ever flies.

FF Prime Flight Software Framework by NASA JPL — open-source GitHub repository preview
Quick verdict

Reach for F Prime if you're building flight software for a CubeSat, SmallSat, or a real-time embedded system and want a component architecture NASA has actually flown, plus modeling tools that generate the plumbing code for you. Skip it if you're writing anything other than embedded/spaceflight software — the component modeling, C++ requirement, and JPL-heritage toolchain are heavy overhead for a general application.

Stars
★ 0
Forks
⑂ 0
Language
License
See repository
Topic
Updated
Jul 2026
Homepage
GitHub

The problem it solves

Flight software has to be deterministic, testable, and safe to change late in a mission, but hand-writing message queues, threading, and inter-component wiring in C++ is error-prone and hard to verify. Small satellite teams especially don't have the budget to build that infrastructure from scratch for every mission. F Prime exists to give those teams a reusable component architecture and code generation so they spend time on mission logic, not on re-inventing the flight software plumbing.

What is it?

The F Prime flight software framework, known as F´, is an open-source (Apache-2.0) C++ framework from NASA's Jet Propulsion Laboratory for spaceflight and embedded applications. It decomposes flight software into discrete components with well-defined interfaces, provides core runtime capabilities like message queues and threads, and ships modeling tools (the FPP modeling language) that specify components and connections and auto-generate the connecting code. The README says F´ has been deployed on several space missions and is tailored to small-scale systems such as CubeSats, SmallSats, and instruments.

Why it's getting attention

F Prime carries real flight heritage — it was built at the Jet Propulsion Laboratory and, per the README, has flown on several space applications — which is rare for open-source flight software. With CubeSats and SmallSats now within reach of universities and startups, a free, Apache-2.0 framework that hands you a proven component architecture plus code generation is a practical alternative to building flight software from zero. The repo sits at over 11,000 stars and 1,700 forks, and NASA maintains it in the open with public GitHub Discussions and a separate F´ Community organization for third-party contributions.

How this repository's GitHub stars have grown over time. Source: star-history.com.View the star history

Key features

  • A component architecture that splits flight software into discrete units with well-defined interfaces
  • A C++ runtime providing core capabilities like message queues and threads
  • FPP modeling tools that specify components and connections and auto-generate the connecting code
  • A growing collection of ready-to-use components you can drop into a project
  • Testing tools for exercising flight software at both the unit and integration levels
  • A bootstrapping CLI (fprime-bootstrap) that scaffolds a new project for you
  • Runs on small targets — the topics list Raspberry Pi and real-time embedded systems

Best use cases

  • Writing flight software for a CubeSat or SmallSat without building the infrastructure from scratch
  • Structuring an embedded real-time system as connected components with generated glue code
  • Prototyping instrument or spacecraft software on a Raspberry Pi before moving to flight hardware
  • Running unit and integration tests on flight software before deployment
  • Reusing a proven, JPL-originated component library across multiple missions

How to install / try

Development needs Linux, Windows with WSL, or macOS, plus git, Python 3.10+ with virtual environments and pip, and a Clang or GNU C/C++ compiler. Install the bootstrapping tool with `pip install fprime-bootstrap`, then scaffold a project with `fprime-bootstrap project`. The README points to the HelloWorld tutorial at fprime.jpl.nasa.gov to walk through the full flow.

How to use

After `fprime-bootstrap project` creates a project, you model your components and their connections in FPP, and F´ generates the surrounding C++ so you fill in the component logic. From there you build and run, and use the framework's testing tools to exercise components at the unit and integration levels. New users are pointed to the User Manual and tutorials on the F´ website; the ground data system and command/telemetry tooling live in companion repos (fprime-gds, fprime-tools).

Strengths

  • Real flight heritage — originated at JPL and, per the README, deployed on several space missions
  • Code generation from FPP models removes hand-written wiring between components
  • Open source under Apache-2.0, so you can inspect, self-host, and adapt the whole framework
  • Component architecture makes flight software modular and testable rather than monolithic
  • Actively maintained in the open by NASA with public Discussions and a defined governance CCB

Limitations & risks

  • Narrow domain — it's built for spaceflight and embedded systems, and is overkill for anything outside that world
  • Steep learning curve: you need C++, the FPP component-modeling language, and the surrounding build and ground-data toolchain
  • C++-only for the flight code, so there's no escaping manual memory and real-time concerns
  • Windows isn't supported natively — you develop through WSL, macOS, or Linux
  • Documentation, tutorials, and tooling are spread across the JPL website and several companion repos (fprime-gds, fprime-tools, fpp) rather than one place
View on GitHub

Alternatives

NASA cFS (core Flight System) — NASA's other open-source flight software framework, based on a runtime with reusable appsRTEMS — a real-time operating system used in aerospace and embedded flight systemsFreeRTOS — a widely used, lightweight real-time OS for microcontrollers and embedded devicesZephyr — a Linux Foundation real-time OS for resource-constrained embedded hardware

Who should try it — and who should skip

Small-satellite and embedded teams — CubeSat and SmallSat builders, instrument developers, and university or startup flight software groups — who want a component architecture NASA has flown and are comfortable in C++. If you're not building spaceflight or real-time embedded software, or you can't invest in learning FPP modeling and the JPL toolchain, F Prime is more framework than you need.

Frequently asked questions

What is F Prime (F´)?

F Prime is an open-source flight software framework from NASA's Jet Propulsion Laboratory. It structures embedded and spaceflight software as discrete C++ components with defined interfaces, and generates the connecting code from FPP models.

What is F Prime used for?

It's used to build flight and embedded software for small spacecraft like CubeSats, SmallSats, and instruments, giving teams a reusable component architecture, core runtime services, and unit and integration testing tools.

Is F Prime free and open source?

Yes. F´ is open source under the Apache-2.0 license and maintained publicly by NASA on GitHub, with GitHub Discussions and a separate F´ Community organization for third-party contributions.

What do you need to develop with F Prime?

The README lists Linux, Windows with WSL, or macOS, plus git, Python 3.10+ with virtual environments and pip, and a Clang or GNU C/C++ compiler. You install fprime-bootstrap and create a project with fprime-bootstrap project.

How is F Prime different from NASA cFS?

Both are NASA open-source flight software frameworks. F Prime is component-driven with FPP modeling and code generation and targets small systems like CubeSats, while cFS centers on a core runtime hosting reusable applications. Which fits depends on your mission and team.

Source & attribution

Based on the official nasa/fprime GitHub repository, including its README and project metadata.

Back to TopGit