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](introduction.md): What are components and the component
framework.
- [Component manager](component_manager.md): The runtime.
- [Declarations](declarations.md): Describe components themselves.
- [Component URLs](component_urls.md): URLs that identify components.
- [Lifecycle](lifecycle.md): Component instance progression from creation to
destruction.
- [Topology](topology.md): The relationships among component instances.
- [Realms](realms.md): Sub-trees of the component instance topology.
- [Monikers](monikers.md): Identifiers for component instances based on
the component topology.
- [The difference between components and processes](components_and_processes.md):
The relationship between components and processes.
## Developing components
- [Capabilities](capabilities/README.md): Different types of capabilities and
how to route them between components.
- [Component manifests](component_manifests.md): How to define a component for
the framework.
- [ELF runner](elf_runner.md): 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](runners.md): Instantiate components; add support for more
runtimes.
- [Resolvers](resolvers.md): Find components from URLs; add support for
methods of software packaging and distribution.
## Debugging and troubleshooting
- [Hub](hub.md): A live view of the component topology at runtime.
- [OpaqueTest](opaque_test.md): Hermetic testing framework.
## Internals
- [Design principles](design_principles.md): Guidelines for arriving at
architectural decisions.
- [Life of a protocol open](life_of_a_protocol_open.md): How components connect
to protocols in their namespaces.
[glossary-components-v1]: /docs/glossary.md#components-v1
[glossary-components-v2]: /docs/glossary.md#components-v2