Sunday, October 25, 2026 4,350 lists 78,100 records on file
List your app or device

  1. Home
  2. Container Engines
  3. BuildKit

BuildKit

What it is

BuildKit converts source code into build artifacts and provides tools to define and run builds. Its architecture consists of the buildkitd daemon and buildctl client, with LLB—a binary format for process dependency graphs—used to describe builds. Build definitions can use Dockerfiles and other LLB-compatible frontends. BuildKit supports concurrent dependency resolution, instruction caching, cache import and export, nested build jobs, multiple output formats, and automatic garbage collection. Builds can run without root privileges, and workers can use OCI (runc) or containerd backends. Results can be exported as images, local directories, tarballs, Docker tarballs, or OCI tarballs. The daemon provides a gRPC API over a Unix socket by default and can also use TCP sockets. Binaries are available for Linux, macOS, and Windows. One macOS caveat is that the unofficial Homebrew formula omits buildkitd; Lima in a Linux virtual machine is offered as one way to run it. The project uses the Apache-2.0 license.

For and against

For

  • Concurrent dependency resolution
  • Supports cache import and export
  • Can run builds without root privileges
  • Exports images, directories, and tarballs

Against

  • Unofficial Homebrew formula omits buildkitd
  • GitHub Actions, S3, and Azure Blob cache options are experimental

The verdict

BuildKit offers configurable build definitions, caching, and a range of output formats. macOS users relying on the unofficial Homebrew formula should note that it does not include the daemon.

Who it suits

BuildKit suits developers and teams who need a build toolkit with cache controls, multiple output formats, and rootless execution. It is available for Linux, macOS, and Windows.

Plans and prices

BuildKit (Apache License 2.0)

Free

perpetual · worldwide · non-exclusive · no-charge

Every plan, in full

On the record

Adopters
The project lists Moby and Docker, img, OpenFaaS Cloud, Tekton Pipelines, Docker buildx, Gitpod, Dagger, Depot, and other projects as users.github.com · read 30 Sep 2026
API
The daemon listens on a gRPC API at /run/buildkit/buildkitd.sock by default and can also use TCP sockets.github.com · read 30 Sep 2026
Architecture
BuildKit is composed of the buildkitd daemon and the buildctl client.github.com · read 30 Sep 2026
Binaries
The latest BuildKit binaries are available for Linux, macOS, and Windows.github.com · read 30 Sep 2026
Build features
Features include concurrent dependency resolution, instruction caching, cache import and export, multiple output formats, and automatic garbage collection.github.com · read 30 Sep 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 · read 30 Sep 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 · read 30 Sep 2026
Docker availability
The README says Docker Engine 23.0 and later use Buildx and BuildKit by default for docker build.github.com · read 30 Sep 2026
Execution
BuildKit supports execution without root privileges.github.com · read 30 Sep 2026
Extensible builds
BuildKit uses frontends to convert build definitions into LLB, and supports Dockerfiles and other LLB languages.github.com · read 30 Sep 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 · read 30 Sep 2026
Integrations
BuildKit documentation lists integrations or usage with Podman, nerdctl, Kubernetes, Docker buildx, GitHub Actions cache, S3 cache, Azure Blob Storage cache, and OpenTelemetry.github.com · read 30 Sep 2026
Latest release
The repository’s releases page lists v0.33.1 as the latest release dated September 30, 2026.github.com · read 30 Sep 2026
License
BuildKit is distributed under the Apache License, Version 2.0, which grants perpetual, worldwide, non-exclusive, no-charge, royalty-free copyright rights subject to the license terms.github.com · read 30 Sep 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 · read 30 Sep 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 · read 30 Sep 2026
Outputs
Build results can be exported as images, local directories, tarballs, Docker tarballs, or OCI tarballs.github.com · read 30 Sep 2026
Purpose
BuildKit is a toolkit for converting source code to build artifacts in an efficient, expressive and repeatable manner.github.com · read 30 Sep 2026

The review

BuildKit is a build toolkit for developers and platform teams who need to define and run repeatable builds within container-oriented workflows. It is a strong fit for users who want control over build execution and caching, but less suited to anyone seeking a managed, turnkey service.

Overview

BuildKit separates the buildkitd daemon from its buildctl client. Builds are expressed as LLB process-dependency graphs, a vendor-neutral format that supports concurrent execution and cache reuse. That makes BuildKit useful beyond a single Dockerfile workflow, though operating the daemon and choosing how it fits into a pipeline call for technical ownership.

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

Key features

Flexible definitions and reusable work

Frontends convert build definitions into LLB; Dockerfiles and other LLB languages are supported. Concurrent dependency resolution and instruction caching can reduce repeated work, while cache import and export let teams reuse results across environments. Export options include inline, registry, local directory, and GitHub Actions cache. GitHub Actions, S3, and Azure Blob cache options are marked experimental, so they are a less dependable foundation for workflows that require a settled cache path.

Build outputs can be exported as images, local directories, tarballs, Docker tarballs, or OCI tarballs. Automatic garbage collection helps manage build data, and nested jobs, distributable workers, and pluggable architecture give infrastructure teams more ways to shape execution. The trade-off is breadth: BuildKit offers building blocks, not a turnkey interface that makes those choices for the user.

Execution and security boundaries

BuildKit supports execution without root privileges, and its daemon can use OCI (runc) or containerd worker backends. Its default configuration restricts API access to the BuildKit state directory rather than the rest of the host filesystem; application and frontend containers cannot directly reach the host system, use privileged system calls, or access external devices. That is a meaningful safeguard when working with untrusted sources, though it does not remove the need to configure and operate the daemon responsibly.

The daemon exposes a gRPC API, using /run/buildkit/buildkitd.sock by default, with TCP sockets also supported. BuildKit consists of that daemon and the buildctl client, so API-driven use fits teams comfortable integrating build infrastructure rather than expecting a standalone desktop application.

Pricing

BuildKit is free under the BuildKit (Apache License 2.0) plan: free, perpetual, worldwide, non-exclusive, no-charge, and royalty-free. There are no paid tiers or usage limits stated, making it a practical option for individuals and teams that can supply their own build environment. Its low price does not include a hosted workflow; the daemon and surrounding infrastructure remain the user's responsibility.

Platforms

BuildKit supports Linux, Windows, and macOS, and binaries are available for all three. The macOS Homebrew formula is unofficial and does not include the buildkitd daemon; running it via a Linux virtual machine, such as Lima, is one route. Mac users should account for that extra setup rather than assume a native formula provides the complete build system.

Who it's for

BuildKit suits developers and platform teams who want cache-aware, configurable builds and are prepared to run a daemon or use Buildx within Docker. Rootless execution and host-isolation defaults are useful for teams handling untrusted build inputs. It is a poorer fit for people who want a managed build service, a simple desktop workflow, or a macOS installation with the daemon included out of the box.

Pros and cons

  • Pros: Free Apache-2.0 licensing and no stated usage limits make it accessible for sustained use.
  • Pros: Multiple frontends, output formats, workers, and cache paths support varied build pipelines.
  • Pros: Rootless execution and default host-access restrictions help contain build activity.
  • Cons: Users must operate and integrate the daemon and client rather than rely on a hosted, managed workflow.
  • Cons: The unofficial macOS Homebrew formula omits the daemon, adding a Linux VM or equivalent setup step.
  • Cons: Several cache options, including S3 and Azure Blob, are experimental.

Alternatives

Buildah is another free command-line option for readers who want an open-source alternative without paid tiers or stated usage limits. Kaniko is worth considering when the requirement is specifically to build container images from Dockerfiles and distribute the builder as a container image.

Cloud Native Buildpacks Pack offers a free CLI and Go library, making it a reasonable choice for readers who want those interfaces. Dagger may suit an individual seeking a freemium offering with a free trial; its Individual plan includes one user, 1,000,000 monthly events, one month of run history, and community support.

Paketo Buildpacks is a free option for readers specifically seeking open-source buildpacks for container images. Jib is the more focused choice for Java container building tools.

Earthly is another free option for readers comparing build tools. Depot is a paid alternative with a free trial; its Developer plan costs $20 a month, billed monthly, and includes one user, 500 Docker build minutes, 2,000 Depot CI minutes, and 2,000 GitHub Actions minutes.

Verdict

Choose BuildKit if you need a free, extensible build engine with reusable caching, multiple output formats, and control over execution. Its strongest case is flexibility within a pipeline you can operate; look elsewhere if you want a managed service or a macOS setup that includes the daemon without extra work.

Alternatives to BuildKit

Every alternative, ranked