BuildStream Documentation

About BuildStream

BuildStream is a flexible and extensible framework for the modelling of build pipelines in a declarative YAML format, written in python.

These pipelines are composed of abstract elements which perform mutations on on filesystem data as input and output, and are related to eachother by their dependencies.

Basic element types for importing SDKs in the form of tarballs or ostree checkouts, building software components and exporting SDKs or deploying bootable filesystem images will be included in BuildStream, but it is expected that projects forge their own custom elements for doing more elaborate things such as deploying software in special ways.

Using BuildStream

Here are some resources to help understand the BuildStream format and also to get off the ground installing it on a new host.


General Elements

  • stack - Symbolic Element for dependency grouping
  • import - Import sources directly
  • compose - Compose the output of multiple elements
  • script - Run scripts to create output
  • x86image - Create x86 bootable disk images
  • dpkg_deploy - Create debian packages

Build Elements


The following source types are provided with BuildStream:

  • local - A Source implementation for local files and directories
  • tar - A Source implementation for tarballs
  • git - A Source implementation for git
  • bzr - A Source implementation for bazaar
  • ostree - A Source implementation for ostree

Core Framework

The core public APIs are of interest to anyone who wishes to implement custom Element or Source plugins.

Indices and tables