.bst file

The configuration for an Element, represented in YAML format.


The output collected after building an Element.

Artifacts can be built from Sources, or pulled from a Remote Cache, if available.

Artifact name

The name of an artifact, which can be used in various commands to operate directly on artifacts, without requiring the use of a Project.


BuildStream leverages various caching techniques in order to avoid duplicating work.

Depending on context, “Cache” might refer to BuildStream’s local cache or a Remote Cache.

Core plugin

A Plugin that is contained in the BuildStream package. These are built-in and don’t need to be defined in the project configuration.

See plugin documentation for more details on core plugins.


Elements in a BuildStream project can depend on other elements from the same project. The element dependent upon is called a dependency.

See Dependencies document for more details.

Dependency configuration

Additional custom YAML configuration which is used to define an Element’s relationship with it’s Dependency.

This is supported on limited Element implementations, and each Element defines what configuration it supports.

See the dependency documentation for details on dependency configuration.


An atom of a BuildStream project. Projects consist of zero or more elements.

During the build process, BuildStream transforms Sources and Dependencies of an element into its output. The output is called an Artifact.

Configuration for elements is stored in form of .bst files. See Declaring Elements document for more details on element configurtion.

External Plugin

A Plugin that is defined in some package other than BuildStream.

External plugins must be declared in the project configuration.

For a list of known external plugin repositories, see External plugins.


A special kind of Element, that allows you to depend on elements from another project.

See Junction reference for details on how to configure junction elements.

See Junction guide for details on how to use junction elements.

Local Cache

To avoid duplicating work, BuildStream will cache sources, artifacts, logs, buildtrees etc. in a local cache directory. If these sources or artifacts are needed another time, BuildStream will use them from the cache.

See Local cache expiry section of the user guide for details on how to configure the local cache.


BuildStream Plugins define types of Elements and Sources. Hence, they come in two distinct varities - Element Plugins and Source Plugins.

BuildStream supports some plugins out of the box. It also has support for third party plugins.


A collection of Elements.

Elements in a project share some central configuration. See Project configuration to learn how to configure BuildStream projects.

Remote Cache

A server setup for sharing BuildStream Sources and/or Artifacts.

See cache server documentation for details on artifact caches.


Sources describe the input to the build of an Element.

In general, an element can have zero or more sources. But, certain element plugins may restrict the number of allowed sources.

Sources are defined in the Sources section of Element configuration.


Subprojects are projects which are referred to by a Junction.


Workspaces allow building one or more elements using a local, and potentially modified, copy of their sources.

See Workspaces guide for more details on how to use workspaces.