blob: 90b27abac6c1564065ed1957f02a136a6ba38be0 [file] [log] [blame] [view] [edit]
# 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.
- [Declarations](declarations.md): Describe components themselves.
- [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.
[doc-component-urls]: /docs/concepts/components/component_urls.md
[glossary-components-v2]: /docs/glossary.md#components-v2
[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