FREEDOM251

Freedom251 › Container Engines

BuildKit

Free plan APILinuxMacSelf-hostedWindows

Visit BuildKit Alternatives Pricing

BuildKit's own site

What BuildKit is

BuildKit is a free toolkit for turning source code into build artifacts. It consists of the buildkitd daemon and buildctl client, and represents build process dependencies with LLB, a binary intermediate format. Build definitions can use Dockerfiles or other LLB-compatible frontends. The toolkit supports concurrent dependency resolution, instruction caching, cache import and export, nested jobs, multiple output formats, and automatic garbage collection. Builds can run without root privileges, using OCI (runc) or containerd worker backends. Results can be exported as images, local directories, tarballs, Docker tarballs, or OCI tarballs. The daemon offers a gRPC API over a Unix socket by default and can also use TCP sockets. Cache exporters include inline, registry, local directory, and GitHub Actions cache; some listed options are marked experimental. Binaries are available for Linux, macOS, and Windows. The unofficial Homebrew formula for macOS does not include buildkitd; the project describes Lima in a Linux virtual machine as one way to run it. BuildKit is licensed under Apache-2.0.

Who it suits

BuildKit suits developers and teams that need a toolkit for defining and running builds, with cache, worker, and output-format choices. Its support for rootless execution and multiple platforms may also suit varied build environments.

What it does well

  • Supports concurrent dependency resolution and instruction caching.
  • Builds can run without root privileges.
  • Offers multiple output formats.
  • Binaries are available for Linux, macOS, and Windows.
  • Licensed under Apache-2.0.

What to know first

  • Unofficial macOS Homebrew formula excludes buildkitd.
  • Some listed cache options are experimental.

Plans

PlanBilled and limitsPrice
BuildKit (Apache License 2.0)perpetual · worldwide · non-exclusive · no-charge · royalty-freeFree

As github.com lists them, read 30 Sept 2026. The maker's own page has the final word.

Getting started

  1. Visit the BuildKit GitHub repository.
  2. Get a BuildKit binary for Linux, macOS, or Windows.
  3. Use buildkitd and buildctl, the daemon and client components.
  4. Define builds with Dockerfiles or another frontend that produces LLB.
  5. For macOS, note that the unofficial Homebrew formula omits buildkitd; the project gives Lima in a Linux virtual machine as an example.

BuildKit is a build system for producing repeatable artifacts, aimed at developers and platform teams who want to shape container build workflows themselves. It is a strong fit when caching, extensible build definitions and control over execution matter more than a managed service. The main caveat is operational: BuildKit has a daemon to run, and the unofficial macOS Homebrew formula does not include it.

Overview

BuildKit pairs the buildkitd daemon with the buildctl client. Builds are expressed as LLB dependency graphs, a vendor-neutral intermediate format designed for concurrent execution and cache reuse. This architecture gives teams more flexibility than a single fixed build-definition format, but it also makes BuildKit a toolkit to integrate into a workflow, not a turnkey hosted builder.

Docker Engine 23.0 and later use Buildx and BuildKit by default for docker build, so Docker users may already encounter it through their existing setup. The project identifies users including Moby and Docker, Tekton Pipelines, Gitpod, Dagger and Depot. BuildKit is licensed under Apache-2.0.

Key features

Builds that can reuse work

BuildKit resolves dependencies concurrently and caches instructions. Cache import and export can carry reusable results between environments, which is useful for teams whose builds run repeatedly across machines or CI jobs. Exporters include inline, registry, local-directory and GitHub Actions cache options; GitHub Actions, S3 and Azure Blob cache options are marked experimental, making them a less settled foundation for workflows that depend on them.

Flexible definitions and outputs

Frontends translate build definitions into LLB. Dockerfiles and other LLB languages are supported, and nested build jobs and pluggable architecture broaden the options for structuring a pipeline. Results can be exported as images, local directories, tarballs, Docker tarballs or OCI tarballs. That range suits teams that need different artifacts from the same build system, though selecting and maintaining the workflow remains the user's responsibility.

Execution and security

BuildKit supports rootless execution and OCI (runc) and containerd worker backends. Its default daemon configuration restricts API access to the BuildKit state directory rather than the wider host filesystem; application and frontend containers cannot directly access the host system, use privileged system calls or reach external devices. These boundaries make it suitable for builds involving untrusted sources, while rootless support gives operators another way to limit privilege.

The daemon exposes a gRPC API at /run/buildkit/buildkitd.sock by default and can also use TCP sockets. Automatic garbage collection helps manage build data, but teams still need to operate the daemon and choose their workers and cache setup. Security issues can be reported privately to [email protected]; there is no paid security bounty program.

Pricing

BuildKit is free: its Apache License 2.0 plan costs nothing, with perpetual, worldwide, non-exclusive, no-charge and royalty-free terms. It includes the build toolkit without a paid tier or stated usage cap, making it a practical option for teams willing to run and integrate the software themselves. The trade-off is operational rather than a cheaper plan with fewer features: BuildKit is not presented as a managed build service.

Platforms

BuildKit supports Linux, Windows and macOS, with binaries for all three and self-hosted use. Rootless mode and image building are supported, and it handles both image formats. macOS users should account for the daemon gap in the unofficial Homebrew formula: the README gives running BuildKit in a Linux VM with Lima as an example. That extra layer makes a native-feeling macOS setup less straightforward than the platform label alone suggests.

Who it's for

BuildKit suits developers and platform teams building container images who need reusable caches, multiple output formats or the freedom to use Dockerfiles alongside other frontends. It is also relevant to Docker users, since recent Docker Engine versions use it by default for docker build. Readers seeking a hosted, managed build workflow, or anyone unwilling to operate a daemon, should look elsewhere.

Pros and cons

  • Pros: Concurrent dependency resolution and instruction caching can reduce repeated build work, with cache import and export for reuse across environments.
  • Pros: Frontends, multiple worker backends and several output formats let teams adapt builds to their existing pipelines.
  • Pros: Rootless execution and default host-access restrictions give teams useful controls when building from untrusted sources.
  • Cons: Operators must run and configure the daemon; it is a toolkit, not a managed build service.
  • Cons: The unofficial macOS Homebrew formula omits the daemon, so Mac users need another way to run it, such as a Linux VM.
  • Cons: Some cache options, including GitHub Actions, S3 and Azure Blob, are experimental.

Alternatives

Dagger is worth considering when a free individual plan with a published monthly-event allowance and run-history window better matches the workflow; its Team plan costs $50 per US.

Garden may suit teams looking for a freemium option with an Enterprise tier that includes secrets management, RBAC and self-hosting; its free tier has limits on build minutes, cache hits and retention.

Tilt is another free, Apache-2.0 option for users who want a tool spanning Linux, macOS and Windows.

AWS CodeBuild is an alternative for teams preferring usage-based billing for compute resources, with charges tied to build duration and selected compute type.

Cloud Native Buildpacks Pack offers a free CLI and Go library for users looking for that buildpacks approach.

Buildah is a free open-source command-line tool for users who prefer that form of container-image builder.

Kaniko is a free option for building container images from Dockerfiles, distributed as container images.

Paketo Buildpacks provides free open-source buildpacks for building container images.

Browse Container Build Tools or Container Engines for more options.

Verdict

Choose BuildKit if your team wants a free, extensible container build system with reusable caching, varied outputs and control over execution. Its strongest case is the combination of flexible build definitions and cache-aware execution; the reason to look elsewhere is the work of operating it, especially on macOS where the Homebrew formula omits the daemon.

Verdict

BuildKit offers a flexible build toolkit with caching, multiple frontends and outputs, and rootless execution. macOS users relying on the unofficial Homebrew formula should note that it does not include the daemon.

Questions

Does BuildKit cost anything?

BuildKit is free under the Apache-2.0 license.

Which operating systems have BuildKit binaries?

Binaries are available for Linux, macOS, and Windows.

Can BuildKit run without root privileges?

Yes. BuildKit supports execution without root privileges.

What build definitions does BuildKit support?

It supports Dockerfiles and other frontend languages that convert build definitions into LLB.

What formats can BuildKit export?

Build results can be exported as images, local directories, tarballs, Docker tarballs, or OCI tarballs.

Does the macOS Homebrew formula include buildkitd?

No. The unofficial formula does not include the daemon; the project gives Lima in a Linux virtual machine as an example way to run it.

Facts from BuildKit's own pages

Adopters
The project lists Moby and Docker, img, OpenFaaS Cloud, Tekton Pipelines, Docker buildx, Gitpod, Dagger, Depot, and other projects as users. · github.com, 30 Sept 2026
API
The daemon listens on a gRPC API at /run/buildkit/buildkitd.sock by default and can also use TCP sockets. · github.com, 30 Sept 2026
Architecture
BuildKit is composed of the buildkitd daemon and the buildctl client. · github.com, 30 Sept 2026
Binaries
The latest BuildKit binaries are available for Linux, macOS, and Windows. · github.com, 30 Sept 2026
Build features
Features include concurrent dependency resolution, instruction caching, cache import and export, multiple output formats, and automatic garbage collection. · github.com, 30 Sept 2026
Cache backends
Cache exporters include inline, registry, local directory, and GitHub Actions cache; the README marks GitHub Actions, S3, and Azure Blob cache options experimental in its contents list. · github.com, 30 Sept 2026
Core features
Key features include automatic garbage collection, extendable frontend formats, concurrent dependency resolution, instruction caching, cache import/export, nested build jobs, distributable workers, multiple output formats, pluggable architecture, and execution without root privileges. · github.com, 30 Sept 2026
Docker availability
The README says Docker Engine 23.0 and later use Buildx and BuildKit by default for docker build. · github.com, 30 Sept 2026
Execution
BuildKit supports execution without root privileges. · github.com, 30 Sept 2026
Extensible builds
BuildKit uses frontends to convert build definitions into LLB, and supports Dockerfiles and other LLB languages. · github.com, 30 Sept 2026
Host isolation
With the default daemon configuration, the BuildKit API does not allow access to the host filesystem outside the BuildKit state directory, and application and frontend containers cannot access the host system, run privileged system calls, or access external devices directly. · github.com, 30 Sept 2026
Integrations
The repository lists Moby and Docker, Tekton Pipelines, Docker buildx, Gitpod, Dagger, and other projects as BuildKit users. · github.com, 30 Sept 2026
Latest release
The repository’s releases page lists v0.33.1 as the latest release dated September 30, 2026. · github.com, 30 Sept 2026
License
The repository identifies its license as Apache-2.0. · github.com, 30 Sept 2026
LLB
BuildKit builds use a binary intermediate format called LLB for defining process dependency graphs, and LLB is concurrently executable, efficiently cacheable, and vendor-neutral. · github.com, 30 Sept 2026
macOS limitation
The README says the unofficial Homebrew formula for macOS does not include the buildkitd daemon and gives Lima in a Linux VM as an example way to run it. · github.com, 30 Sept 2026
Outputs
Build results can be exported as images, local directories, tarballs, Docker tarballs, or OCI tarballs. · github.com, 30 Sept 2026
Platforms
The buildctl client is available for Linux, macOS, and Windows, while the buildkitd daemon is available for Linux and Windows. · github.com, 30 Sept 2026
Purpose
BuildKit converts source code into build artifacts efficiently and repeatably. · github.com, 30 Sept 2026
Security model
BuildKit describes itself as secure by default and usable with untrusted sources. · github.com, 30 Sept 2026
Security reporting
Security issues should be reported privately to [email protected], and the project currently does not offer a paid security bounty program. · github.com, 30 Sept 2026
Support
The README directs users to the #buildkit channel on Docker Community Slack. · github.com, 30 Sept 2026
Workers
The daemon supports OCI (runc) and containerd worker backends. · github.com, 30 Sept 2026

Where BuildKit stands on Freedom251

Look at these too