This section contains documentation about components in the new component framework (components v2).
Components are the basic unit of executable software on Fuchsia.
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)
- Component URLs are URLs that identify components.
- Components vs. processes: how the concepts differ
testing
- Test components: defining components that implement tests and running them.
- Test Runner Framework: writing idiomatic tests in different languages that use common testing frameworks.
- Complex topologies and integration testing: testing interactions between multiple components in isolation from the rest of the system.
Meta
- State of the Components v2 migration: a work in progress.
Internals
- Design principles: Guidelines for arriving at architectural decisions.
- Life of a protocol open: How components connect to protocols in their namespaces.