Component manifests

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:

Component manifest stages

Component manifest source

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 files that end with a .cml extension.

The cmc tool compiles component manifest sources to component manifests as a part of the build process.

Component manifest

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.

Component declaration

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.