# About AppStream

## What is AppStream?

AppStream is a cross-distro effort for ehnacing the metadata available about software components in the Linux and free-software ecosystem. One of the project's goals is to make building software-center applications possible, and make interaction with the package sources of a distribution smarter. AppStream provides specifications for meta-information which is shipped by upstream projects and can be consumed by other software. The meta-information includes data which is interesting to display in software centers and is mainly useful for end-users, as well as descriptions about the public interfaces a software component provides, which is mainly useful for developers, 3rd-party software installers and for automatically installing missing components on a distribution, for example missing firmware or mimetype-handlers.

Distributors provide metadata as well, which describes all components available in a software repository. That data is composed of the upstream-metainfo and some other sources. AppStream also provides specifications for things like a screenshot-service, application ratings & reviews etc. All AppStream distro-repository data is stored in a Xapian database, which then contains information about all available components in the distribution's software repositories.

All parts of AppStream are distro-agnostic (with exception to some metadata which is used to generate the Xapian application cache), and therefore AppStream makes it possible to build distro-agnostic application management tools.

### Architecture