gitwtfhub

wtf is fprime?

nasa/fprime — explained in plain English

Analysis updated 2026-06-24

10,930C++Audience · developerComplexity · 4/5LicenseSetup · moderate

TL;DR

NASA's open-source framework for building spacecraft flight software using small, reusable components, battle-tested on real space missions and available for any embedded system.

Mindmap

mindmap
  root((F Prime))
    What it does
      Component framework
      Code generation
      Message queues
    Flight heritage
      CubeSats
      Small satellites
      Scientific instruments
    Tools included
      Ground data system
      Testing framework
      FPP model language
    Tech stack
      C++ runtime
      Python tooling
      CMake build
    Audience
      Embedded developers
      Aerospace engineers
      Research teams

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Why would anyone build with this?

REASON 1

Build flight software for a CubeSat or small satellite using NASA's proven component-based architecture.

REASON 2

Create testable embedded systems software where each piece can be developed and verified independently.

REASON 3

Monitor and command a running embedded application using F Prime's built-in ground-data system.

REASON 4

Use the same framework that flew on real space hardware to build reliable software for any critical embedded system.

What's in the stack?

C++PythonCMake

How it stacks up

nasa/fprimegcc-mirror/gccapache/thrift
Stars10,93010,92610,919
LanguageC++C++C++
Setup difficultymoderatehardmoderate
Complexity4/55/54/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you spin it up?

Difficulty · moderate Time to first run · 30min

Requires Python 3.10+, a C++ compiler, and CMake, runs on Linux, macOS, or Windows via WSL.

Open source under Apache 2.0, use freely including for commercial embedded systems.

Wtf does this do

F Prime (written as F') is an open-source software framework made by NASA's Jet Propulsion Laboratory for building the code that runs inside spacecraft. It has been used on real missions, including CubeSats, small satellites, and scientific instruments that have actually flown in space. The framework is now publicly available for anyone to use, not just NASA teams. The core idea behind F Prime is that flight software should be broken into small, self-contained building blocks called components. Each component has clearly defined inputs and outputs, which makes it easier to develop, test, and swap out individual pieces without rewriting everything else. The framework provides the underlying machinery that lets these components communicate, including message queues and background threads, so developers can focus on what their software needs to do rather than how to coordinate it. Beyond the runtime pieces, F Prime includes tools for describing components in a model and then automatically generating the boilerplate C++ code from that model. There is also a ground-data system for monitoring and commanding a running application, plus testing tools that work at both the individual component level and the full system level. Setting it up requires a Linux, macOS, or Windows (via WSL) machine with Python 3.10 or newer and a C++ compiler. Installation starts with a single pip command to get the bootstrap tool, and then a second command to create a new project. The project website hosts tutorials, a user manual, and a community discussion forum. Active maintainers from several organizations handle ongoing development and security oversight. The project is tailored toward small-scale spacecraft but the README notes it is not limited to space applications. Any embedded system where reliability and testability matter could use the same component-based approach. With over 10,000 GitHub stars and a track record on actual space hardware, it represents a mature option for teams building software that has to work right the first time.

Yoink these prompts

Prompt 1
Create a new F Prime project for a CubeSat attitude control system and show me the directory structure and first component.
Prompt 2
Write an F Prime component in C++ that reads temperature sensor data over I2C and publishes it as telemetry.
Prompt 3
How do I write a unit test for an F Prime component using the built-in testing tools without real hardware?
Prompt 4
Generate an FPP model definition file for a motor controller component that accepts speed and direction commands.

Frequently asked questions

wtf is fprime?

NASA's open-source framework for building spacecraft flight software using small, reusable components, battle-tested on real space missions and available for any embedded system.

What language is fprime written in?

Mainly C++. The stack also includes C++, Python, CMake.

What license does fprime use?

Open source under Apache 2.0, use freely including for commercial embedded systems.

How hard is fprime to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is fprime for?

Mainly developer.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.