Components v2

This section contains documentation about components in the new component framework (components v2).

Components are the basic unit of executable software on Fuchsia.

Note: The component framework is under active development. This document only covers the new architecture (components v2) implemented by component_manager. The old architecture (components v1) implemented by appmgr is still in use but will be removed once the transition to the new architecture is complete.

Architectural concepts

  • Introduction: What are components and the component framework.
  • Component manager: The runtime.
  • Declarations: Describe components themselves.
  • Lifecycle: Component instance progression from creation to destruction.
  • Topology: The relationships among component instances.
  • Realms: Sub-trees of the component instance topology.
  • Monikers: Identifiers for component instances based on the component topology.

Developing components

  • Capabilities: Different types of capabilities and how to route them between components.
  • Component manifests: How to define a component for the framework.
  • ELF runner: How to launch a component from an ELF file. Typically useful for developing system components in C++, Rust, or Go.

Extending the component framework

  • Runners: Instantiate components; add support for more runtimes.
  • Resolvers: Find components from URLs; add support for methods of software packaging and distribution.

Debugging and troubleshooting

  • Hub: A live view of the component topology at runtime.
  • OpaqueTest: Hermetic testing framework.


Components (either version)