# nasa/fprime

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/nasa-fprime).**

10,766 stars · 1,478 forks · C++ · apache-2.0

## Links

- GitHub: https://github.com/nasa/fprime
- Homepage: https://fprime.jpl.nasa.gov
- awesome-repositories: https://awesome-repositories.com/repository/nasa-fprime.md

## Topics

`components` `cpp` `embedded` `embedded-systems` `flight` `flight-software` `fprime` `framework` `nasa` `object-oriented-programming` `raspberry-pi` `real-time` `spaceflight`

## Description

F Prime is a component-based framework designed for the development and deployment of embedded and spaceflight software. It provides a modular architecture that decouples software logic from communication interfaces, allowing developers to define system structures through a domain-specific modeling language. This model-based approach enables automated code generation, ensuring consistency across complex system topologies while maintaining strict interface contracts between software modules.

The framework distinguishes itself through its integrated build system and ground data operations suite. It automates the entire lifecycle of embedded software, from cross-compilation and dependency management to the generation of telemetry and command interfaces. By providing a unified environment for both onboard flight software and ground-based monitoring, it facilitates seamless integration, testing, and command-and-control of distributed embedded systems across diverse hardware platforms.

Beyond its core architecture, the project includes comprehensive tools for system observability, including real-time telemetry visualization, event logging, and diagnostic tracing. It supports a wide range of deployment scenarios, from bare-metal environments to real-time operating systems, and provides mechanisms for memory management, state-driven behavior modeling, and asynchronous task execution.

The project is maintained as a C++ repository with extensive documentation and build-system support for cross-platform development.

## Tags

### Development Tools & Productivity

- [Embedded Flight Software Frameworks](https://awesome-repositories.com/f/development-tools-productivity/application-development-frameworks/embedded-application-frameworks/embedded-flight-software-frameworks.md) — Provides a component-based architecture for building, testing, and deploying reliable software for spaceflight and embedded systems. ([source](https://fprime.jpl.nasa.gov/latest/docs/reference/api/cpp/html/))
- [Cross-Platform Build Systems](https://awesome-repositories.com/f/development-tools-productivity/build-automation-engines/cross-platform-build-systems.md) — Automates code generation, dependency management, and cross-compilation for diverse hardware targets through a configurable build pipeline. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/build-system/cmake-api/))
- [Build Automation Systems](https://awesome-repositories.com/f/development-tools-productivity/build-automation-systems.md) — Orchestrates the compilation, dependency management, and deployment of embedded software through a configurable build system. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/))
- [Interface Definition Code Generation](https://awesome-repositories.com/f/development-tools-productivity/interface-definition-code-generation.md) — Automates the generation of source code and interface definitions from architectural models to ensure system consistency. ([source](https://fprime.jpl.nasa.gov/latest/docs/reference/api/cmake/test/data/TestDeployment/TestChainedAutocoder/))
- [Architectural Modeling Languages](https://awesome-repositories.com/f/development-tools-productivity/application-development-frameworks/embedded-application-frameworks/embedded-flight-software-frameworks/architectural-modeling-languages.md) — Defines software architecture using a domain-specific modeling language to generate code and structure for spaceflight and embedded applications. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/))
- [Code Generation](https://awesome-repositories.com/f/development-tools-productivity/project-scaffolding-config-code-generation/code-generation.md) — Translates component specifications and system connections into source code to accelerate development and ensure consistency across the application. ([source](https://fprime.jpl.nasa.gov/overview))
- [Autocoding Integrators](https://awesome-repositories.com/f/development-tools-productivity/build-system-integrations/autocoding-integrators.md) — Orchestrates the generation of source artifacts and dependency tracking directly within the compilation pipeline to maintain system integrity.
- [Sequence Executors](https://awesome-repositories.com/f/development-tools-productivity/command-execution/sequence-executors.md) — Executes ordered lists of commands from files, supporting time-based triggers and automatic termination on command failure. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/overview/source-tree/))
- [System Command Dispatchers](https://awesome-repositories.com/f/development-tools-productivity/command-lifecycle-managers/system-command-dispatchers.md) — Routes serialized commands to target components based on unique identifiers and manages the lifecycle of command execution. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/overview/source-tree/))
- [Source Generators](https://awesome-repositories.com/f/development-tools-productivity/compilers-toolchains/source-compilation-tools/source-generators.md) — Automates the creation of software components by processing input files through defined build rules. ([source](https://fprime.jpl.nasa.gov/latest/docs/reference/api/cmake/autocoder/autocoder/))
- [Cross-Compilation Toolchains](https://awesome-repositories.com/f/development-tools-productivity/cross-compilation-toolchains.md) — Enables targeting non-native hardware architectures by configuring custom toolchain files during the build process. ([source](https://fprime.jpl.nasa.gov/latest/docs/reference/api/cmake/options/))
- [Embedded Hardware Cross-Compilation](https://awesome-repositories.com/f/development-tools-productivity/cross-compilation-toolchains/embedded-hardware-cross-compilation.md) — Configures build toolchains to target specific embedded processors and architectures, enabling deployment to diverse hardware environments. ([source](https://fprime.jpl.nasa.gov/latest/docs/tutorials/cross-compilation/))
- [Sequence Compilers](https://awesome-repositories.com/f/development-tools-productivity/display-automation-tools/display-sequence-automators/sequence-compilers.md) — Translates human-readable command sequence files into a minimized binary format required for execution by flight software. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/gds/seqgen/))
- [Build Toolchains](https://awesome-repositories.com/f/development-tools-productivity/build-toolchains.md) — Registers external toolchain configurations to enable specialized compilation for diverse hardware targets. ([source](https://fprime.jpl.nasa.gov/latest/docs/how-to/develop-fprime-libraries/))
- [Build Configurations](https://awesome-repositories.com/f/development-tools-productivity/build-tooling/build-orchestration-logic/build-orchestration-configuration/build-configuration-systems/build-configurations.md) — Defines build environments and registers modules to enable the compilation of embedded applications. ([source](https://fprime.jpl.nasa.gov/latest/docs/reference/api/cmake/deployment-CMakeLists.txt-template/))
- [Dictionary Generators](https://awesome-repositories.com/f/development-tools-productivity/configuration-dictionaries/dictionary-generators.md) — Automates the creation of project-wide and module-level dictionary targets to support system configuration and telemetry mapping. ([source](https://fprime.jpl.nasa.gov/latest/docs/reference/api/cmake/target/dictionary/))
- [Cross-Platform Build Configurations](https://awesome-repositories.com/f/development-tools-productivity/cross-platform-build-configurations.md) — Defines custom build configurations and toolchain settings to adapt software for specific hardware environments during compilation. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/build-system/cmake-platforms/))
- [Automated Test Execution](https://awesome-repositories.com/f/development-tools-productivity/debugging-profiling-testing/test-execution-management/automated-test-execution.md) — Runs defined test suites against components to verify functional correctness and ensure system reliability during development. ([source](https://fprime.jpl.nasa.gov/latest/docs/reference/api/cmake/test/data/test-fprime-library/cmake/target/test/))
- [Blocking Task Offloaders](https://awesome-repositories.com/f/development-tools-productivity/task-execution/blocking-task-offloaders.md) — Delegates long-running operations to a low-priority worker component to ensure the primary manager remains responsive to high-priority events. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/design-patterns/manager-worker/))
- [Custom System Executable Building](https://awesome-repositories.com/f/development-tools-productivity/build-tooling/build-orchestration-logic/build-orchestration-configuration/build-automation-systems/build-systems/binary-compilation-toolchains/server-binary-compilers/hardware-specific-binaries/custom-system-executable-building.md) — Compiles component designs and topologies into unique binaries tailored for specific embedded hardware platforms. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/overview/proj-dep/))
- [Build Orchestrators](https://awesome-repositories.com/f/development-tools-productivity/build-tooling/build-orchestration-logic/build-orchestration-configuration/build-automation-systems/build-systems/cross-platform-orchestrators/multi-target-build-orchestrators/build-orchestrators.md) — Extends the build system with user-defined commands for executing custom logic at global or module levels. ([source](https://fprime.jpl.nasa.gov/latest/docs/reference/api/cmake/target/target/))
- [Interactive Command Line Interfaces](https://awesome-repositories.com/f/development-tools-productivity/command-line-interfaces/advanced-execution-environments/interactive-command-line-interfaces.md) — Provides a command-line interface to send spacecraft commands and receive telemetry or event data. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/gds/gds-dev-guide/))
- [Flow Control](https://awesome-repositories.com/f/development-tools-productivity/plugin-management/backpressure-management/flow-control.md) — Regulates message transmission between components and hardware using status feedback to prevent interface overloading and ensure reliable data delivery. ([source](https://fprime.jpl.nasa.gov/latest/docs/reference/communication-adapter-interface/))
- [Embedded File Transfer Managers](https://awesome-repositories.com/f/development-tools-productivity/remote-file-transfers/embedded-file-transfer-managers.md) — Manages the bidirectional movement of files between the ground system and the embedded target for updates or data retrieval. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/overview/gds-introduction/))
- [Framework Type Overrides](https://awesome-repositories.com/f/development-tools-productivity/type-definitions/framework-type-overrides.md) — Overrides default type definitions for system components to meet specific project requirements or hardware constraints. ([source](https://fprime.jpl.nasa.gov/latest/docs/reference/numerical-types/))
- [Build Pipeline Customizers](https://awesome-repositories.com/f/development-tools-productivity/build-pipeline-customizers.md) — Integrates external code generation tools directly into the build pipeline for automated source processing. ([source](https://fprime.jpl.nasa.gov/latest/docs/reference/api/cmake/API/))
- [Build-Time Optimizers](https://awesome-repositories.com/f/development-tools-productivity/build-time-optimizers.md) — Enables or disables optional framework features at compile time to reduce memory usage in resource-constrained environments. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/framework/configuring-fprime/))
- [Build Artifact Generators](https://awesome-repositories.com/f/development-tools-productivity/build-tooling/build-observability-metadata/build-observability-and-diagnostics/build-artifact-generators.md) — Configures the build system to execute autocoder processes and produce necessary source files from defined input specifications. ([source](https://fprime.jpl.nasa.gov/latest/docs/reference/api/cmake/test/data/cmake/autocoder/test_target_autocoder/))
- [Build-Time Validation](https://awesome-repositories.com/f/development-tools-productivity/build-validation-tools/build-time-validation.md) — Inspects link arguments and file references during build recursion to ensure all required components are correctly defined. ([source](https://fprime.jpl.nasa.gov/latest/docs/reference/api/cmake/target/target/))
- [Test Code Generators](https://awesome-repositories.com/f/development-tools-productivity/debugging-profiling-testing/test-execution-management/test-code-generators.md) — Automates the creation of unit test scaffolding and build configurations to ensure consistent verification. ([source](https://fprime.jpl.nasa.gov/latest/docs/reference/api/cmake/test/data/TestDeployment/TestBuildAutocoder/))
- [Component Capacity Constants](https://awesome-repositories.com/f/development-tools-productivity/predefined-constants/component-capacity-constants.md) — Adjusts the capacity of system components and ports by setting global constants to match resource requirements. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/framework/configuring-fprime/))
- [Build Environment Configurations](https://awesome-repositories.com/f/development-tools-productivity/project-scaffolding-config-code-generation/project-scaffolding-configuration/build-configuration/build-environment-configurations.md) — Integrates project components with the build system to enable automated code generation and standard compilation workflows. ([source](https://fprime.jpl.nasa.gov/latest/docs/reference/api/cmake/FPrime/))
- [Source-Level Module Packaging](https://awesome-repositories.com/f/development-tools-productivity/software-packaging/source-level-module-packaging.md) — Organizes components, ports, and topologies into namespaced directories to share and integrate custom code across different software projects. ([source](https://fprime.jpl.nasa.gov/latest/docs/how-to/develop-fprime-libraries/))
- [Initialization Command Sequences](https://awesome-repositories.com/f/development-tools-productivity/terminal-shell-cli/cli-tooling-frameworks/cli-tooling/argument-configuration-management/command-configurations/initialization-command-sequences.md) — Executes a series of commands from a file, automatically validating responses and halting the sequence if any command fails. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/overview/04-cmd-evt-chn-prm/))

### Software Engineering & Architecture

- [Component-Based Architectures](https://awesome-repositories.com/f/software-engineering-architecture/component-based-architectures.md) — Implements a modular design pattern that decouples software logic from communication interfaces to facilitate system-wide reuse.
- [Component Definition Generators](https://awesome-repositories.com/f/software-engineering-architecture/component-port-definitions/component-definition-generators.md) — Automates the creation of component interface structures and build configurations from architectural models to ensure system-wide consistency. ([source](https://fprime.jpl.nasa.gov/latest/docs/reference/fprime-translations/))
- [System Architecture Models](https://awesome-repositories.com/f/software-engineering-architecture/component-port-definitions/system-architecture-models.md) — Models software components and their interconnections using a domain-specific language to generate structured code. ([source](https://fprime.jpl.nasa.gov/latest/docs/reference/))
- [Compile-Time Code Generation](https://awesome-repositories.com/f/software-engineering-architecture/compile-time-code-generation.md) — Translates architectural models and component specifications into source code to ensure consistency and automate boilerplate creation.
- [Embedded Systems Development](https://awesome-repositories.com/f/software-engineering-architecture/development-methodologies/application-targets-domains/embedded-systems-development.md) — Builds modular, reliable software for spaceflight and embedded systems using a component-based architecture.
- [Topology Assembly Systems](https://awesome-repositories.com/f/software-engineering-architecture/topology-assembly-systems.md) — Instantiates and connects software components into a functional graph at build or runtime to define system structure.
- [Asynchronous Task Queues](https://awesome-repositories.com/f/software-engineering-architecture/asynchronous-task-queues.md) — Executes tasks in separate threads using active components and message queues to decouple component interactions and prevent blocking. ([source](https://fprime.jpl.nasa.gov/latest/docs/reference/fprime-translations/))
- [Concurrency Primitives](https://awesome-repositories.com/f/software-engineering-architecture/concurrency-primitives.md) — Abstracts operating system primitives for threads, message queues, and mutexes to support robust component execution. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/overview/source-tree/))
- [Cross-Platform Abstractions](https://awesome-repositories.com/f/software-engineering-architecture/cross-platform-abstractions.md) — Provides a uniform interface for system-level services like threading and memory management to enable cross-platform portability.
- [Runtime Parameter Configurators](https://awesome-repositories.com/f/software-engineering-architecture/default-configuration-values/execution-parameter-configurations/application-parameter-configurators/runtime-parameter-configurators.md) — Updates component settings at runtime via ground-commanded parameters to adjust behavior without requiring software redeployment. ([source](https://fprime.jpl.nasa.gov/latest/docs/reference/fprime-translations/))
- [Non-Volatile Parameter Managers](https://awesome-repositories.com/f/software-engineering-architecture/default-configuration-values/non-volatile-parameter-managers.md) — Stores and retrieves non-volatile configuration values, providing default fallbacks and automated synchronization for system settings. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/framework/autocoded-functions/))
- [Interface Definition Languages](https://awesome-repositories.com/f/software-engineering-architecture/interface-definition-languages.md) — Specifies component ports and data structures using a dedicated modeling language to ensure type-safe communication. ([source](https://fprime.jpl.nasa.gov/latest/docs/))
- [Modular Software Design](https://awesome-repositories.com/f/software-engineering-architecture/modular-software-design.md) — Decomposes complex software into discrete, interconnected components to facilitate modular design and system-wide functionality. ([source](https://fprime.jpl.nasa.gov/latest/docs/how-to/develop-subtopologies/))
- [Embedded Component Modularization](https://awesome-repositories.com/f/software-engineering-architecture/modular-software-design/embedded-component-modularization.md) — Constructs reusable software units with custom ports and data types to facilitate the design and implementation of embedded applications. ([source](https://fprime.jpl.nasa.gov/latest/docs/tutorials/))
- [Component Port Definitions](https://awesome-repositories.com/f/software-engineering-architecture/component-port-definitions.md) — Links components by connecting input and output ports to facilitate data flow and message passing. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/framework/building-topology/))
- [Concurrent Execution Managers](https://awesome-repositories.com/f/software-engineering-architecture/concurrent-execution-managers.md) — Provides built-in support for message queues and multi-threading to handle asynchronous tasks and inter-component communication within embedded environments. ([source](https://cdn.jsdelivr.net/gh/nasa/fprime@devel/README.md))
- [Model-Based Verification](https://awesome-repositories.com/f/software-engineering-architecture/core-business-logic/logic-verification-utilities/infrastructure-logic-verification/model-based-verification.md) — Validates software logic against defined models by executing tests before implementation to ensure requirements are met. ([source](https://fprime.jpl.nasa.gov/latest/docs/how-to/test-driven-development/))
- [Data Serialization](https://awesome-repositories.com/f/software-engineering-architecture/data-serialization.md) — Translates complex data structures into architecture-independent binary buffers to enable communication across different address spaces or nodes.
- [Decoupled Logic Layers](https://awesome-repositories.com/f/software-engineering-architecture/decoupled-logic-layers.md) — Structures complex systems into distinct application, manager, and driver layers to decouple logic from hardware interfaces. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/design-patterns/app-man-drv/))
- [Build-Time Parameter Overrides](https://awesome-repositories.com/f/software-engineering-architecture/default-configuration-values/execution-parameter-configurations/application-parameter-configurators/build-time-parameter-overrides.md) — Overrides default configuration settings for imported modules at build time to adapt reusable components to specific project requirements without modifying the original source code. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/design-patterns/subtopologies/))
- [Distributed Systems Architectures](https://awesome-repositories.com/f/software-engineering-architecture/distributed-systems-architectures.md) — Bridges software components across different computing nodes to enable transparent communication in distributed system architectures.
- [Runtime Type Guards](https://awesome-repositories.com/f/software-engineering-architecture/runtime-type-guards.md) — Encapsulates component communication using typed ports that ensure interface consistency and support various execution patterns. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/overview/03-port-comp-top/))
- [Parameter Loading Interfaces](https://awesome-repositories.com/f/software-engineering-architecture/default-configuration-values/execution-parameter-configurations/application-parameter-configurators/runtime-parameter-configurators/parameter-loading-interfaces.md) — Retrieves and updates component parameters from storage via dedicated ports to support both initial startup and runtime configuration changes. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/framework/building-topology/))
- [Logic Encapsulation Interfaces](https://awesome-repositories.com/f/software-engineering-architecture/module-encapsulation-patterns/logic-encapsulation-interfaces.md) — Defines modular software units that encapsulate commands, events, and telemetry through standardized interfaces. ([source](https://fprime.jpl.nasa.gov/latest/tutorials-hello-world/docs/hello-world/))
- [Component Encapsulation Wrappers](https://awesome-repositories.com/f/software-engineering-architecture/module-encapsulation-patterns/logic-encapsulation-interfaces/component-encapsulation-wrappers.md) — Wraps external library logic within a component to provide a standardized interface for other system parts. ([source](https://fprime.jpl.nasa.gov/latest/docs/how-to/integrate-external-libraries/))
- [Platform Abstraction Layers](https://awesome-repositories.com/f/software-engineering-architecture/platform-abstraction-layers.md) — Adapts core software architecture to run on different hardware targets by implementing necessary abstraction layers. ([source](https://fprime.jpl.nasa.gov/latest/docs/how-to/))
- [Polymorphic Memory Structures](https://awesome-repositories.com/f/software-engineering-architecture/polymorphic-data-encodings/polymorphic-memory-structures.md) — Uses a unified storage structure to represent multiple primitive types interchangeably within the same memory space. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/overview/05-enum-arr-ser/))
- [Decoupled Logic Encapsulation](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/modular-decoupled-design/structural-design-paradigms/decoupled-logic-encapsulation.md) — Decomposes software into isolated modules that interact exclusively through defined port interfaces to ensure loose coupling. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/overview/03-port-comp-top/))
- [State Machine Logic](https://awesome-repositories.com/f/software-engineering-architecture/state-machine-logic.md) — Defines and executes state-based logic within components to manage complex system behaviors. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/framework/state-machines/))
- [System Model Generators](https://awesome-repositories.com/f/software-engineering-architecture/system-interaction-modeling/system-model-generators.md) — Produces representations of system modules to support external tooling and architectural analysis. ([source](https://fprime.jpl.nasa.gov/latest/docs/reference/api/cmake/options/))
- [Command History Trackers](https://awesome-repositories.com/f/software-engineering-architecture/command-execution-engines/command-history-trackers.md) — Maintains a searchable history of sent operational commands for verification and retry. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/overview/gds-introduction/))
- [Asynchronous Request Handlers](https://awesome-repositories.com/f/software-engineering-architecture/concurrent-execution-managers/asynchronous-concurrency-managers/asynchronous-request-handlers.md) — Separates requests from responses using distinct ports to allow asynchronous processing. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/design-patterns/common-port-patterns/))
- [Build-System Library Integrators](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/workflow-automation-integrations/external-application-integrations/build-system-library-integrators.md) — Incorporates third-party software libraries into the build system to leverage existing functionality within the application. ([source](https://fprime.jpl.nasa.gov/latest/docs/how-to/))
- [Library Dependency Managers](https://awesome-repositories.com/f/software-engineering-architecture/library-compatibility-managers/library-dependency-managers.md) — Automatically detects external library manifests and configures include directories for dependency integration. ([source](https://fprime.jpl.nasa.gov/latest/docs/reference/api/cmake/FPrime/))
- [Module Encapsulation Patterns](https://awesome-repositories.com/f/software-engineering-architecture/module-encapsulation-patterns.md) — Groups component instances and internal connections into reusable units to simplify complex system topologies. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/design-patterns/subtopologies/))
- [Framework Directory Registries](https://awesome-repositories.com/f/software-engineering-architecture/project-management-governance/repository-maintenance/project-organization/framework-directory-registries.md) — Registers the core framework directory structure within the build system to ensure all mainline components are correctly identified and included. ([source](https://fprime.jpl.nasa.gov/latest/docs/reference/api/cmake/FPrime-Code/))
- [Process Memory Spaces](https://awesome-repositories.com/f/software-engineering-architecture/shared-memory-management/shared-memory-instance-deployments/process-memory-spaces.md) — Runs multiple software components within a single process address space to enable direct communication. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/framework/run-multi-core/))

### System Administration & Monitoring

- [Embedded System Management](https://awesome-repositories.com/f/system-administration-monitoring/embedded-system-management.md) — Provides a ground-based interface to monitor, command, and interact with embedded software deployments. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/overview/gds-introduction/))
- [Ground System Plugins](https://awesome-repositories.com/f/system-administration-monitoring/ground-system-plugins.md) — Provides a suite of tools for monitoring telemetry, dispatching commands, and performing integration testing on embedded software. ([source](https://fprime.jpl.nasa.gov/latest/docs/how-to/custom-framing/))
- [System Command Launchers](https://awesome-repositories.com/f/system-administration-monitoring/system-command-launchers.md) — Provides a command-line interface to send spacecraft commands and receive telemetry or event data from ground systems. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/gds/gds-test-api-guide/))
- [System Telemetry Collectors](https://awesome-repositories.com/f/system-administration-monitoring/system-telemetry-collectors.md) — Streams real-time events and telemetry channels from embedded systems to the console with filtering support. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/gds/gds-cli/))
- [Event Monitoring Systems](https://awesome-repositories.com/f/system-administration-monitoring/event-monitoring-systems.md) — Tracks component activity and internal state changes using real-time telemetry and event logging. ([source](https://fprime.jpl.nasa.gov/latest/tutorials-hello-world/docs/hello-world/))
- [Remote Hardware Controls](https://awesome-repositories.com/f/system-administration-monitoring/remote-hardware-controls.md) — Sends operational commands to remote hardware directly through a configurable dashboard interface. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/gds/gds-custom-dashboards/))
- [System Dictionaries](https://awesome-repositories.com/f/system-administration-monitoring/telemetry-exporters/system-dictionaries.md) — Generates a structured representation of software components, types, and telemetry definitions to facilitate cross-tool integration. ([source](https://fprime.jpl.nasa.gov/latest/docs/reference/fpp-json-dict/))
- [System Logging](https://awesome-repositories.com/f/system-administration-monitoring/system-logging.md) — Records and transmits diagnostic events with severity levels for ground systems and local consoles. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/overview/04-cmd-evt-chn-prm/))
- [Logging and Telemetry](https://awesome-repositories.com/f/system-administration-monitoring/logging-and-telemetry.md) — Defines telemetry channels, event logs, and command interfaces for standardized monitoring and control. ([source](https://fprime.jpl.nasa.gov/latest/docs/reference/fpp-json-dict/))
- [Diagnostic and Error Reporting](https://awesome-repositories.com/f/system-administration-monitoring/monitoring-and-observability/diagnostic-error-reporting.md) — Reports system status through enumerated types and diagnostic events to track health and operational failures. ([source](https://fprime.jpl.nasa.gov/latest/docs/reference/fprime-translations/))
- [Event Monitoring Systems](https://awesome-repositories.com/f/system-administration-monitoring/monitoring-and-observability/observability-platforms/operational-health-alerting/event-monitoring-systems.md) — Verifies critical system components remain active by sending periodic ping requests and escalating on timeouts. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/design-patterns/health-checking/))
- [System Monitoring Dashboards](https://awesome-repositories.com/f/system-administration-monitoring/system-monitoring-dashboards.md) — Provides diagnostic interfaces for tracking and visualizing system health and operational status. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/overview/gds-introduction/))

### DevOps & Infrastructure

- [Embedded Hardware Deployment](https://awesome-repositories.com/f/devops-infrastructure/deployment-management-strategies/execution-platforms-and-targets/hardware-profile-deployments/embedded-hardware-deployment.md) — Supports execution on diverse architectures and operating systems including Linux, FreeRTOS, Zephyr, and VxWorks for spaceflight and embedded hardware. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/framework/supported-platforms/))
- [Build Configuration Management](https://awesome-repositories.com/f/devops-infrastructure/build-configuration-management.md) — Orchestrates the compilation and linking of software modules using a standardized interface for cross-platform deployment. ([source](https://fprime.jpl.nasa.gov/latest/docs/reference/))
- [Cross-Platform Execution](https://awesome-repositories.com/f/devops-infrastructure/cross-platform-deployment-targets/cross-platform-execution.md) — Supports deployment on various operating systems, real-time kernels, and bare-metal environments across multiple processor architectures. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/overview/01-full-intro/))
- [Baremetal System Deployment](https://awesome-repositories.com/f/devops-infrastructure/deployment-management-strategies/automation-and-tooling/deployment-systems/baremetal-system-deployment.md) — Executes software components directly on hardware without an operating system by using an abstraction layer. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/framework/run-baremetal/))
- [Distributed Deployment](https://awesome-repositories.com/f/devops-infrastructure/distributed-deployment.md) — Links independent software deployments across physical devices to enable unified communication and data exchange. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/framework/run-multi-core/))
- [System Time Base Definitions](https://awesome-repositories.com/f/devops-infrastructure/automation-orchestration/task-execution-frameworks/event-based-triggers/time-based-triggers/system-time-base-definitions.md) — Specifies available clock sources and time contexts used for time-tagging telemetry and performing time-based operations. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/framework/configuring-fprime/))
- [Task Schedulers](https://awesome-repositories.com/f/devops-infrastructure/automation-orchestration/task-execution-frameworks/task-job-management/task-schedulers.md) — Triggers component execution at defined intervals by dividing a master clock signal into multiple repeating tick rates. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/design-patterns/rate-group/))
- [Cross-Platform Deployment Targets](https://awesome-repositories.com/f/devops-infrastructure/cross-platform-deployment-targets.md) — Cross-compiles and packages applications for target embedded systems to ensure consistent execution across diverse hardware environments. ([source](https://fprime.jpl.nasa.gov/latest/docs/))
- [Deployment Configuration](https://awesome-repositories.com/f/devops-infrastructure/deployment-configuration.md) — Externalizes component properties into dedicated configuration modules to allow flexible tuning without modifying core logic. ([source](https://fprime.jpl.nasa.gov/latest/docs/how-to/develop-subtopologies/))
- [Deployment Targets](https://awesome-repositories.com/f/devops-infrastructure/deployment-management-strategies/execution-platforms-and-targets/deployment-targets.md) — Registers executable modules and subdirectories to define the structure of complete software deployments. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/build-system/01-cmake-intro/))
- [Remote Workspace Command Execution](https://awesome-repositories.com/f/devops-infrastructure/execution-environments/remote-workspace-command-execution.md) — Sends operational commands to embedded systems with support for arguments and command definitions. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/gds/gds-cli/))
- [Queue Capacity Configurators](https://awesome-repositories.com/f/devops-infrastructure/task-queues/queue-capacity-configurators.md) — Configures message queue sizes for active components to manage task priorities and handle inter-component communication traffic effectively. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/framework/building-topology/))
- [Build System Extensions](https://awesome-repositories.com/f/devops-infrastructure/cicd-pipeline-automation/core-build-engines/bundling-extension-architectures/build-system-extensions.md) — Registers custom build targets at global and module levels to execute user-defined tasks during the compilation process. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/build-system/cmake-targets/))
- [Deployment Environments](https://awesome-repositories.com/f/devops-infrastructure/deployment-management-strategies/execution-platforms-and-targets/deployment-environments.md) — Compiles component topologies into a single runnable software image for execution within target environments. ([source](https://fprime.jpl.nasa.gov/latest/tutorials-hello-world/docs/hello-world/))
- [Deployment Targets](https://awesome-repositories.com/f/devops-infrastructure/deployment-management-strategies/execution-platforms-and-targets/deployment-infrastructure/deployment-targets.md) — Registers custom build targets for software modules and deployment packages to manage compilation and dependency resolution. ([source](https://fprime.jpl.nasa.gov/latest/docs/reference/api/cmake/FPrime/))
- [Interface Scope Managers](https://awesome-repositories.com/f/devops-infrastructure/deployment-management-strategies/execution-platforms-and-targets/deployment-targets/interface-scope-managers.md) — Wraps standard linking and inclusion commands to automatically adjust scope requirements for interface-based software components. ([source](https://fprime.jpl.nasa.gov/latest/docs/reference/api/cmake/utilities/))
- [Plugin Distribution Packages](https://awesome-repositories.com/f/devops-infrastructure/package-distribution/plugin-distribution-packages.md) — Bundles custom plugins as standard Python packages with entry points to enable local testing, installation, and distribution. ([source](https://fprime.jpl.nasa.gov/latest/docs/how-to/develop-gds-plugins/))

### Networking & Communication

- [Ground System Interfaces](https://awesome-repositories.com/f/networking-communication/ground-system-interfaces.md) — Provides network-based communication channels to connect onboard telemetry and command systems with external ground software for remote monitoring. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/overview/source-tree/))
- [Data Framing](https://awesome-repositories.com/f/networking-communication/data-framing.md) — Adapts raw byte streams into structured packets for specific hardware or protocols through custom assembly and disassembly logic. ([source](https://fprime.jpl.nasa.gov/latest/docs/reference/gds-plugins/framing/))
- [Data Product Transmitters](https://awesome-repositories.com/f/networking-communication/data-transmission-reliability/data-product-transmitters.md) — Sends filled data containers to storage or downlink services using standardized ports and automated time-tagging. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/framework/data-products/))
- [Radio Adapter Managers](https://awesome-repositories.com/f/networking-communication/network-management-interfaces/radio-adapter-managers.md) — Handles bidirectional data transmission and reception by bridging software components with physical radio hardware via standardized adapters. ([source](https://fprime.jpl.nasa.gov/latest/docs/how-to/implement-radio-manager/))
- [Data Product Decoders](https://awesome-repositories.com/f/networking-communication/binary-data-encoding/contract-data-decoders/data-product-decoders.md) — Translates binary data product files into readable formats using command-line tools for ground-based analysis and verification. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/framework/data-products/))

### Operating Systems & Systems Programming

- [System Service Abstraction Layers](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-core-internals/system-programming-primitives/system-abstractions/system-service-abstraction-layers.md) — Provides a uniform interface for system-level operations like threading and file management to ensure application portability. ([source](https://fprime.jpl.nasa.gov/latest/docs/how-to/implement-osal/))
- [Schema Generation Engines](https://awesome-repositories.com/f/operating-systems-systems-programming/data-structures/schema-generation-engines.md) — Automates the creation of serializable structures and enumerations from system models to ensure consistency across software communication. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/overview/05-enum-arr-ser/))
- [Hardware Drivers](https://awesome-repositories.com/f/operating-systems-systems-programming/hardware-interfacing-drivers/hardware-drivers.md) — Initializes and manages low-level communication protocols like UART to establish reliable data links between software and physical hardware. ([source](https://fprime.jpl.nasa.gov/latest/docs/how-to/implement-radio-manager/))
- [Managed Memory Allocators](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-core-internals/process-and-memory-management/memory-management/allocation-strategies/dynamic-memory-allocation/custom-memory-allocators/managed-memory-allocators.md) — Controls heap usage through specialized allocators and fixed-size buffer managers to ensure predictable memory consumption in embedded environments. ([source](https://fprime.jpl.nasa.gov/latest/docs/reference/fprime-translations/))
- [Fixed-Size Memory Pool Managers](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-core-internals/process-and-memory-management/memory-management/allocation-strategies/dynamic-memory-allocation/custom-memory-allocators/preallocated-memory-pools/fixed-size-memory-pool-managers.md) — Allocates and deallocates fixed-size memory regions through a centralized manager to avoid heap fragmentation and ensure predictable memory usage. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/framework/memory-management/buffer-pool/))
- [Process Isolation](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-core-internals/process-and-memory-management/process-isolation.md) — Deploys software components into separate processes to ensure fault containment and stability. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/framework/run-multi-core/))
- [Hardware Partitioning Systems](https://awesome-repositories.com/f/operating-systems-systems-programming/system-administration-maintenance/partition-managers/hardware-partitioning-systems.md) — Deploys independent software instances across hardware partitions managed by a hypervisor to ensure strong isolation. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/framework/run-multi-core/))
- [Hardware Abstraction Layers](https://awesome-repositories.com/f/operating-systems-systems-programming/hardware-interfacing-drivers/hardware-abstraction-layers.md) — Provides abstraction layers to enable software execution on custom or non-standard embedded hardware. ([source](https://fprime.jpl.nasa.gov/latest/docs/how-to/porting-guide/))
- [Component Memory Allocation Models](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-core-internals/process-and-memory-management/memory-management/allocation-strategies/dynamic-memory-allocation/memory-allocation-tracers/heap-allocation-strategies/component-memory-allocation-models.md) — Creates component instances using flexible memory models including static, heap, or stack allocation to suit specific embedded system requirements. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/framework/building-topology/))
- [Runtime Buffer Management](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-core-internals/process-and-memory-management/memory-management/allocation-strategies/dynamic-memory-allocation/custom-memory-allocators/stream-buffer-allocators/runtime-buffer-management.md) — Facilitates safe sharing and reuse of pre-allocated memory pools to avoid heap allocation during operation. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/framework/memory-management/))
- [Operating System Service Abstractions](https://awesome-repositories.com/f/operating-systems-systems-programming/virtualization-emulation/hardware-emulators/hardware-interface-emulators/system-emulators/operating-system-service-abstractions.md) — Provides an abstraction layer that mimics threads and message queues to support components requiring OS features in resource-constrained environments. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/framework/run-baremetal/))

### User Interface & Experience

- [Active-Passive Models](https://awesome-repositories.com/f/user-interface-experience/component-utilities/ui-frameworks/rendering-models/component-architecture/active-passive-models.md) — Separates execution logic into thread-safe active components with message queues and passive components for synchronous operations.
- [Telemetry Visualization](https://awesome-repositories.com/f/user-interface-experience/telemetry-visualization.md) — Constructs custom graphical interfaces to display real-time telemetry, event logs, and command history. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/gds/gds-custom-dashboards/))
- [Execution Context Configurators](https://awesome-repositories.com/f/user-interface-experience/component-utilities/ui-frameworks/rendering-models/component-architecture/active-passive-models/execution-context-configurators.md) — Assigns execution contexts to modules by selecting passive, active, or queued types to manage threading and message processing requirements. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/overview/03-port-comp-top/))
- [Distributed Node Bridges](https://awesome-repositories.com/f/user-interface-experience/node-based-ui-components/distributed-node-bridges.md) — Enables distributed system architectures by serializing and transmitting component data across computing nodes without modifying internal logic. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/overview/source-tree/))
- [Component Lifecycle Management](https://awesome-repositories.com/f/user-interface-experience/presentation-frameworks/lifecycle-state-management/component-lifecycle-management.md) — Attaches initialization, startup, and teardown logic directly to component instances to maintain consistent behavior across system modules. ([source](https://fprime.jpl.nasa.gov/latest/docs/how-to/develop-subtopologies/))
- [Implementation Swapping Interfaces](https://awesome-repositories.com/f/user-interface-experience/ui-architecture/design-utilities/design-systems/component-implementation-patterns/implementation-swapping-interfaces.md) — Selects specific underlying code implementations for system concepts like operating systems or memory management at link time. ([source](https://fprime.jpl.nasa.gov/latest/docs/reference/api/cmake/implementation/))
- [Component Initialization](https://awesome-repositories.com/f/user-interface-experience/component-initialization.md) — Provides standardized lifecycle hooks for configuring component instances and queue depths during system startup. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/framework/autocoded-functions/))
- [Inclusion Policies](https://awesome-repositories.com/f/user-interface-experience/component-management/inclusion-policies.md) — Optimizes binary size and resource usage by selectively including or excluding system components. ([source](https://fprime.jpl.nasa.gov/latest/docs/reference/api/cmake/options/))

### Web Development

- [Topology Orchestrators](https://awesome-repositories.com/f/web-development/component-orchestration-tools/topology-orchestrators.md) — Connects multiple component instances into a defined topology to create the functional structure of a software system. ([source](https://fprime.jpl.nasa.gov/latest/tutorials-hello-world/docs/hello-world/))
- [Mission Control Plugin Architectures](https://awesome-repositories.com/f/web-development/extension-systems/mission-control-plugin-architectures.md) — Creates custom plugins to add specialized functionality or visualization tools to the mission control interface. ([source](https://fprime.jpl.nasa.gov/latest/docs/how-to/))

### Data & Databases

- [Data Model File Generation](https://awesome-repositories.com/f/data-databases/data-model-file-generation.md) — Automates the creation of software components and interface files by processing input models to ensure architectural consistency. ([source](https://cdn.jsdelivr.net/gh/nasa/fprime@devel/README.md))
- [Data Pipeline Automation](https://awesome-repositories.com/f/data-databases/data-pipeline-automation.md) — Manages runtime environments that automatically connect applications to ground system data pipelines. ([source](https://fprime.jpl.nasa.gov/latest/docs/reference/gds-plugins/gds-app/))
- [Architecture-Wide Type Definitions](https://awesome-repositories.com/f/data-databases/data-type-definitions/architecture-wide-type-definitions.md) — Specifies complex data structures including arrays and enumerations to ensure consistent data modeling across the architecture. ([source](https://fprime.jpl.nasa.gov/latest/docs/reference/fpp-json-dict/))
- [System Data Product Managers](https://awesome-repositories.com/f/data-databases/data-engineering-infrastructure/data-persistence-storage/data-persistence-management/system-data-product-managers.md) — Coordinates the generation, storage, and downlink of system data by providing components for memory allocation, non-volatile storage writing, and cataloging. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/framework/data-products/))
- [Data Serialization](https://awesome-repositories.com/f/data-databases/data-processing-pipelines/data-serialization.md) — Translates complex data types into architecture-independent buffers for generic data routing and communication across system boundaries. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/overview/03-port-comp-top/))
- [Data Structure Definitions](https://awesome-repositories.com/f/data-databases/data-structure-definitions.md) — Specifies custom data records and containers using a modeling language to organize system information for storage and transmission. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/framework/data-products/))
- [Cross-Platform Primitive Standards](https://awesome-repositories.com/f/data-databases/data-type-definitions/scalar-types/cross-platform-primitive-standards.md) — Provides a consistent set of primitive type definitions that ensure cross-platform compatibility and exact bit-width representation. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/overview/05-enum-arr-ser/))
- [Decoupled Driver Architectures](https://awesome-repositories.com/f/data-databases/storage-abstraction/storage-provider-drivers/task-and-device-drivers/decoupled-driver-architectures.md) — Decouples hardware communication logic from device-specific operations by splitting drivers into platform-specific bus components and reusable device manager components. ([source](https://fprime.jpl.nasa.gov/latest/docs/how-to/develop-device-driver/))
- [Structured Mission Data Generation](https://awesome-repositories.com/f/data-databases/data-structures/structured-mission-data-generation.md) — Produces and stores large data packets on-board for later asynchronous downlink and scientific analysis. ([source](https://fprime.jpl.nasa.gov/latest/docs/how-to/data-products/))
- [Telemetry](https://awesome-repositories.com/f/data-databases/data-buffering/telemetry.md) — Collects and manages telemetry snapshots using double-buffering to ensure consistent data downlinking. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/overview/source-tree/))
- [Data Serialization Formats](https://awesome-repositories.com/f/data-databases/data-serialization-formats.md) — Converts structured data into binary format within allocated containers using auto-generated serialization operations for efficient storage. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/framework/data-products/))

### Hardware & IoT

- [Hardware Communication](https://awesome-repositories.com/f/hardware-iot/connectivity-iot/hardware-communication.md) — Connects external communication devices using standardized interfaces for packet transmission and buffer management. ([source](https://fprime.jpl.nasa.gov/latest/docs/reference/communication-adapter-interface/))
- [Cross-Address Space Bridges](https://awesome-repositories.com/f/hardware-iot/connectivity-iot/hardware-communication/serial-port-interfaces/port-serializers/cross-address-space-bridges.md) — Serializes typed port calls to transmit data across address spaces, hardware buses, or network interfaces and reconstructs them on the receiving side. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/design-patterns/hub-pattern/))
- [Port Serializers](https://awesome-repositories.com/f/hardware-iot/connectivity-iot/hardware-communication/serial-port-interfaces/port-serializers.md) — Enables cross-node communication by serializing port calls, allowing components to be distributed across physical nodes. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/framework/configuring-fprime/))
- [Indexed Port Sets](https://awesome-repositories.com/f/hardware-iot/connectivity-iot/hardware-communication/serial-port-interfaces/indexed-port-sets.md) — Groups related input and output ports into indexed sets to ensure consistent routing and validation when communicating with multiple external components. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/design-patterns/common-port-patterns/))
- [Serial Communication Interfaces](https://awesome-repositories.com/f/hardware-iot/integration-performance/hardware-interfacing-integration/hardware-interfacing/serial-communication-interfaces.md) — Implements standard adapter interfaces to exchange raw data between ground systems and hardware interfaces like serial ports or radios. ([source](https://fprime.jpl.nasa.gov/latest/docs/reference/gds-plugins/communications/))
- [Communication Optimization Layers](https://awesome-repositories.com/f/hardware-iot/communication-optimization-layers.md) — Provides specialized code generation for port connections to minimize runtime overhead during high-performance data exchange. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/framework/run-baremetal/))

### Programming Languages & Runtimes

- [Type Safety](https://awesome-repositories.com/f/programming-languages-runtimes/language-features-paradigms/type-system-tools/type-safety.md) — Enforces strict interface contracts between software components to ensure type safety and modularity across the system.
- [Reusable Component Packaging](https://awesome-repositories.com/f/programming-languages-runtimes/language-ecosystems-tooling/programming-environments-tooling/modular-library-architectures/reusable-component-packaging.md) — Structures reusable code into independent packages that can be shared and maintained across different projects. ([source](https://fprime.jpl.nasa.gov/latest/docs/how-to/))
- [Interface Contract Implementations](https://awesome-repositories.com/f/programming-languages-runtimes/interface-contract-implementations.md) — Registers specific code implementations for defined interfaces to ensure correct linking and overriding of system-level components. ([source](https://fprime.jpl.nasa.gov/latest/docs/reference/api/cmake/API/))
- [External Library Integrations](https://awesome-repositories.com/f/programming-languages-runtimes/language-interoperability/native-c-interoperability/external-library-integrations.md) — Incorporates third-party code into the build system using source-tree inclusion, remote fetching, or pre-compiled binaries. ([source](https://fprime.jpl.nasa.gov/latest/docs/how-to/integrate-external-libraries/))

### Testing & Quality Assurance

- [Software Testing](https://awesome-repositories.com/f/testing-quality-assurance/software-testing.md) — Validates system behavior through dedicated tools for unit and integration testing of embedded applications. ([source](https://cdn.jsdelivr.net/gh/nasa/fprime@devel/README.md))
- [Interface Verification Harnesses](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/component-testing/interface-verification-harnesses.md) — Executes isolated tests against component interfaces to validate requirements, check telemetry, and ensure expected behavior through automated test harnesses. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/overview/development-practice/))
- [System Integration Test Runners](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/e2e-integration-testing/integration-testing-frameworks/system-integration-test-runners.md) — Validates system-level requirements by programmatically sending commands and monitoring telemetry or events across the assembled deployment. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/overview/development-practice/))
- [Unit Testing Frameworks](https://awesome-repositories.com/f/testing-quality-assurance/unit-testing-frameworks.md) — Validates the logic and reliability of individual software modules through automated test harnesses and code coverage analysis. ([source](https://fprime.jpl.nasa.gov/latest/docs/reference/api/cmake/test/data/cmake/target/test_autocoder/))
- [Component Testing](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/component-testing.md) — Executes unit tests to verify the functionality and reliability of individual software modules. ([source](https://fprime.jpl.nasa.gov/latest/docs/tutorials/))
- [Dependency Mocking](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/dependency-mocking.md) — Replaces real library dependencies with stubs or mocks during testing to simulate behaviors or fault conditions. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/overview/unit-testing/))
- [Integration Testing Suites](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/testing-frameworks/test-frameworks/test-levels-and-types/integration-testing-suites.md) — Integrates component-level test suites into the build process to verify software logic and functionality. ([source](https://fprime.jpl.nasa.gov/latest/docs/reference/api/cmake/test/data/test-fprime-library/test-fprime-library/))
- [Memory Leak Detection](https://awesome-repositories.com/f/testing-quality-assurance/debugging-diagnostics/memory-leak-detection.md) — Instruments the build to identify memory leaks and undefined behavior during execution for improved reliability. ([source](https://fprime.jpl.nasa.gov/latest/docs/reference/api/cmake/sanitizers/))
- [Runtime Verification](https://awesome-repositories.com/f/testing-quality-assurance/debugging-diagnostics/runtime-debugging-tools/runtime-verification.md) — Validates software state during execution by checking specified conditions and reporting violations. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/framework/assert/))
- [System State Assertions](https://awesome-repositories.com/f/testing-quality-assurance/general-testing-utilities/test-utilities-assertions/assertion-extensions-modes/asynchronous-interaction-utilities/element-state-assertions/system-state-assertions.md) — Validates that telemetry or event data matches expected criteria and raises an assertion error if conditions are not met. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/gds/gds-test-api-guide/))
- [Test Report Aggregators](https://awesome-repositories.com/f/testing-quality-assurance/general-testing-utilities/test-utilities-assertions/coverage-diagnostics-reporting/test-report-aggregators.md) — Collects and links unit tests from multiple modules into a single target for comprehensive system validation. ([source](https://fprime.jpl.nasa.gov/latest/docs/reference/api/cmake/target/ut/))
- [Code Coverage Reportings](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/test-execution-orchestration/code-coverage-reportings.md) — Generates reports identifying which source code lines were executed during testing to measure validation thoroughness. ([source](https://fprime.jpl.nasa.gov/latest/docs/user-manual/overview/unit-testing/))

### Part of an Awesome List

- [Robotics Frameworks](https://awesome-repositories.com/f/awesome-lists/devtools/robotics-frameworks.md) — Component-driven framework for spaceflight and embedded software.
