whatisgithub

What is fprime?

nasa/fprime — explained in plain English

Analysis updated 2026-06-24

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

In one sentence

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
Click or tap to explore — scroll the page freely

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

What do people build with it?

USE CASE 1

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

USE CASE 2

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

USE CASE 3

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

USE CASE 4

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

What is it built with?

C++PythonCMake

How does it compare?

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 get it running?

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.

So what is it?

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.

Copy-paste 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

What 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.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.