blob: e3a64798b5c8da67dba3b20abc590c845843b373 [file] [log] [blame] [view] [edit]
# Component declarations (Components v2)
<<../_v2_banner.md>>
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.
Every component has a declaration. For components that are distributed in
[packages][glossary-package], the declaration typically takes the form of
a [component manifest file][doc-component-manifests] that is located using a
[component URL][doc-component-urls].
Components can also be distributed in other forms such as web applications
with the help of a [resolver][doc-resolvers] to retrieve the component
declaration and a [runner][doc-runners] to run the component.
For example, the declaration for a calculator component might specify the
following information:
- The [location of the calculator program within its package][doc-component-manifests-program].
- The name of the [runner][doc-runners] used to run the program.
- A [request for persistent storage][doc-storage-capability] to save the
contents of the calculator's accumulator across restarts.
- A request to [use capabilities][doc-component-manifests-use] to present
a user interface.
- A request to [expose capabilities][doc-component-manifests-expose] to
allow other components to access the calculator's accumulator register
using inter-process communication.
[doc-component-urls]: /docs/concepts/components/component_urls.md
[doc-component-manifests]: /docs/concepts/components/v2/component_manifests.md
[doc-component-manifests-program]: /docs/concepts/components/v2/component_manifests.md#program
[doc-component-manifests-use]: /docs/concepts/components/v2/component_manifests.md#use
[doc-component-manifests-expose]: /docs/concepts/components/v2/component_manifests.md#expose
[doc-resolvers]: /docs/concepts/components/v2/resolvers.md
[doc-runners]: /docs/concepts/components/v2/runners.md
[doc-storage-capability]: /docs/concepts/components/v2/capabilities/storage.md
[glossary-package]: /docs/glossary.md#package