nasa

nasa/fprime

C++ Apache-2.0 IoT

F´ - A flight software and embedded systems framework

11.3k stars
1.6k forks
active
GitHub +119 / week

11.3k

Stars

1.6k

Forks

410

Open issues

30

Contributors

v4.2.2 24 Apr 2026

AI Analysis

F´ is a NASA-developed, flight-proven component-based framework for building embedded systems and spaceflight software, originally deployed on multiple space missions. It provides architecture patterns, C++ runtime capabilities, code generation tooling, and pre-built components specifically tailored for small-scale space systems like CubeSats and instruments. This project is specialized for aerospace and embedded systems engineers; it is not a general-purpose application framework.

IoT Discovery value: 4/10
Documentation 8/10
Activity 9/10
Community 8/10
Code quality 6/10

Inferred from signals mentioned in the README (tests, CI, type safety) — not a review of the actual code.

Overall score 8/10

AI's overall editorial judgment — not an average of the bars above, can weigh other factors too.

embedded-systems flight-software component-framework aerospace real-time-systems
Actively maintained Well documented Niche/specialized use case Popular Production ready
Deep Analysis · Based on README and public signals
2w ago

NASA's flight-proven F´ framework brings structured software engineering to embedded space systems

F´ (F Prime) is a component-driven C++ framework for developing flight software on small spacecraft, CubeSats, SmallSats, and embedded instruments. Originally built at NASA's Jet Propulsion Laboratory, it provides code generation tooling, message queues, threading abstractions, and ground data system support. It has flown on real missions including the Ingenuity Mars Helicopter. Its primary audience is aerospace engineers, university CubeSat teams, and embedded systems developers working on space or mission-critical applications. The combination of flight heritage, open-source licensing, and active community makes it one of the most credible publicly available flight software frameworks.

Origin

Developed internally at JPL, open-sourced in 2017 under Apache-2.0. Gained significant visibility after Ingenuity's 2021 Mars flights and has since expanded its community and tooling ecosystem substantially.

Growth

Growth accelerated sharply after Ingenuity helicopter's Mars flights in 2021, providing undeniable flight heritage. University CubeSat programs and smallsat startups adopted it as a credible baseline. The fprime-community GitHub organization and active tutorial/documentation investment have sustained steady growth rather than a single spike.

In production

Confirmed flight heritage on NASA's Ingenuity Mars Helicopter and several other JPL space missions listed on the official project website. University CubeSat programs and smallsat developers have publicly documented use. The fprime-community GitHub organization hosts third-party contributions and mission-specific adaptations, providing additional adoption evidence.

Code analysis
Architecture

Appears to follow a component-port architecture where discrete software components communicate through typed ports, with autocoded glue logic generated from FPP (F Prime Prime) modeling language. Likely uses active and passive component abstractions backed by OS-level threads and message queues. Python-based toolchain (fprime-tools, fprime-gds) handles code generation and ground system interaction.

Tests

README explicitly mentions unit and integration testing tools as first-class framework features. Specific coverage metrics are not documented in the README, but testing infrastructure appears to be a designed-in capability rather than an afterthought.

Maintenance

Last push was 2026-06-27, one day before analysis date — indicating very active maintenance. A formal governance document, named CCB members, per-product maintainers, and an active v3.6.x maintenance branch all signal a mature, structured project. Multiple named maintainers reduce single-contributor risk.

Honest verdict

ADOPT IF: you are building flight software for a CubeSat, SmallSat, or embedded instrument and want a framework with real flight heritage, structured component architecture, and active community support. AVOID IF: you are building for large spacecraft buses or systems where cFS ecosystem and existing mission heritage is required, or if your target hardware cannot support the C++ runtime and Python toolchain dependencies. MONITOR IF: you are in commercial smallsat or embedded aerospace and are evaluating whether the growing community and third-party component library have matured enough to reduce your integration risk.

Independent dimensions

Mainstream potential

3/10

Technical importance

9/10

Adoption evidence

8/10

Risks
  • The flight software domain is inherently narrow, capping mainstream adoption potential regardless of technical quality or framework maturity.
  • Strong dependency on JPL/NASA institutional support — if key maintainers rotate out of active roles, sustained maintenance pace may be difficult to guarantee long-term through community alone.
  • The FPP modeling language adds a learning curve and a bespoke toolchain dependency that may deter teams accustomed to pure C++ or existing flight software stacks.
  • Targeting small spacecraft specifically means teams building for larger or more traditional platforms may find the framework a poor fit, fragmenting the potential user base.
  • Integration with diverse real-time operating systems and hardware targets requires platform-specific porting work that may not be covered by existing community contributions for less common targets.
Prediction

F´ will likely consolidate its position as the reference open-source framework for small spacecraft flight software, with slow but steady growth in university and commercial smallsat programs. It is unlikely to expand significantly beyond the aerospace/embedded niche.

0 found this helpful

Newsletter

Get analyses like this every Monday

Free weekly digest of the most interesting open-source discoveries.

Languages

C++
86.4%
CMake
5.8%
Fortran
5.1%
Python
1.8%
C
1%
Shell
0%
Makefile
0%
Linker Script
0%

Information

Language
C++
License
Apache-2.0
Last updated
11h ago
Created
110mo ago
Analyzed with
anthropic/claude-haiku-4-5

Stars over time

Loading…

Contributors over time

Top 100 contributors only — repos with more will plateau at 100.

Loading…

Similar repos

FStarLang

FStarLang/FStar

F* is a proof-oriented programming language designed for program verification...

3.1k F* Security
kfrlib

kfrlib/kfr

KFR is a high-performance C++ DSP framework providing optimized building blocks...

1.9k C++ Science
libfann

libfann/fann

FANN is a lightweight, open-source C library implementing multilayer artificial...

1.7k C++ AI & ML
sofa-framework

sofa-framework/sofa

SOFA is an open-source C++ framework for real-time multi-physics simulation...

1.2k C++ Science
f3d-app

f3d-app/f3d

F3D is a fast, minimalist 3D viewer desktop application supporting numerous...

4.5k C++ Media
vs. alternatives
cFS (NASA Core Flight System)

cFS is another NASA open-source flight software framework, more established for larger spacecraft buses. F´ is generally lighter-weight and better suited to CubeSat/SmallSat class missions, with more modern tooling and a more accessible onboarding path.

OSAL + PSP (NASA)

OSAL provides OS abstraction but is a lower-level building block, not a full application framework. F´ operates at a higher abstraction level, providing component architecture, code generation, and ground system tools that OSAL does not.

ROS 2

ROS 2 targets robotics and shares the component/node architecture concept, but is not designed for flight software constraints (determinism, resource budgets, fault management). F´ is purpose-built for embedded flight environments where ROS 2 would be inappropriate or too heavy.

Basilisk (AVS Lab)

Basilisk focuses on spacecraft simulation and guidance/navigation/control algorithm development, not flight software deployment. The two are complementary rather than competing in the same space.

FreeRTOS-based custom stacks

Many embedded space teams build custom stacks on FreeRTOS. F´ offers a structured alternative with code generation and ground tooling, trading flexibility for consistency and reduced bespoke engineering work.