blob: 3cd427ed3c12c74fd143c72f5c6174c02b382431 [file] [log] [blame] [view]
# Components
Components are the basic unit of executable software on Fuchsia.
Note: This section contains documentation about components using the modern
component framework ([Components v2][glossary.components v2]). The Fuchsia
platform team is currently [migrating legacy components][migration] to the
modern component framework. For details on legacy components, see
[Legacy components][legacy-components].
## Architectural concepts
- [Introduction](introduction.md): Understanding components and the component
framework.
- [Component manager](component_manager.md): The runtime.
- [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.
## 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.
- [Component URLs][doc-component-urls] are URLs that identify components.
- [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](capabilities/runners.md): Instantiate components; add support for
more runtimes.
- [Resolvers](capabilities/resolvers.md): Find components from URLs; add
support for methods of software packaging and distribution.
## Diagnostics
- [Hub](hub.md): A live view of the component topology at runtime.
## Testing
- [Test components][test-components]: defining components that implement tests
and running them.
- [Test Runner Framework][trf]: writing idiomatic tests in different languages
that use common testing frameworks.
- [Complex topologies and integration testing][integration-testing]: testing
interactions between multiple components in isolation from the rest of the
system.
- [OpaqueTest](opaque_test.md): Hermetic testing framework (DEPRECATED).
## Internals
- [Component Framework design principles](design_principles.md)
- [Component manifest design principles][rfc0093]
- [Components vs. processes](components_vs_processes.md): how the concepts
differ.
## Misc
- [Termination policies](termination_policies.md): Policies that
can be configured to react to component termination
[glossary.components v1]: /docs/glossary/README.md#components-v1
[glossary.components v2]: /docs/glossary/README.md#components-v2
[doc-component-urls]: /docs/concepts/components/component_urls.md
[legacy-components]: /docs/concepts/components/v1/README.md
[migration]: /docs/contribute/open_projects/components/migration.md
[rfc0093]: /docs/contribute/governance/rfcs/0093_component_manifest_design_principles.md
[test-components]: /docs/concepts/testing/v2/test_component.md
[trf]: /docs/concepts/testing/v2/test_runner_framework.md
[integration-testing]: /docs/concepts/testing/v2/integration_testing.md