<<../_v2_banner.md>>
A component manifest is a file that defines a component by encoding a component declaration. This document gives an overview of the concepts used by component declarations. Component declarations contain information about the following:
- Execution: Details about the runtime and executable binary for components that include an executable program.
- Composition: Child component instances and dynamic collections managed by this component.
- Capabilities: Routing rules that describe how capabilities are provided and consumed between components.
- Metadata: Freeform data, which is ignored by the component framework but can be interpreted by third parties.
Note: For complete details on component manifest attributes and syntax, see the CML reference.
A component manifest source is a file that
encodes part of a component manifest. Component manifest sources are written in
component manifest language (CML), which is the developer-facing source format
for component manifests. CML files are JSON5{: .external}
files that end with a .cml
extension.
The cmc
tool compiles component manifest sources to
component manifests as a part of the build process.
A component manifest is a binary file that encodes the component declaration, usually distributed as part of a package. The binary format is the persistent encoded form of the component declaration FIDL object.
A component URL identifies a component in a package by its
component manifest resource path, typically ending in a .cm
extension.
A component declaration describes what a
component can do, the capabilities it uses and exposes, its children, and other
information needed to run the component. Component declarations are represented
using the Component
FIDL table.
The framework calls a component resolver to retrieve a component declaration from a component URL.