blob: 002a62c9f1851e393623aaf8755344fc0bbd76b6 [file] [log] [blame] [view]
# Components
This section contains documentation about components in the new component
framework ([components v2][glossary-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][glossary-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
- [Component manager]( The runtime.
- [Declarations]( Describe components themselves.
- [Component URLs]( URLs that identify components.
- [Lifecycle]( Component instance progression from creation to
- [Topology]( The relationships among component instances.
- [Realms]( Sub-trees of the component instance topology.
- [Monikers]( Identifiers for component instances based on
the component topology.
- [The difference between components and processes](
The relationship between components and processes.
## Developing components
- [Capabilities](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
- [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.
## Internals
- [Design principles]( Guidelines for arriving at
architectural decisions.
- [Life of a protocol open]( How components connect
to protocols in their namespaces.
[glossary-components-v1]: /docs/
[glossary-components-v2]: /docs/