github.com/moby/buildkit ↗
concurrent, cache-efficient, and Dockerfile-agnostic builder toolkit
An animated visualization of moby/buildkit's Git history from December 2015 to June 2022, built by 158 contributors. The codebase reached 28,270 lines, mostly Go. The video runs 3 minutes 23 seconds.
Render your own repo
Turn any GitHub repository into a video like this — free sample in seconds.
Open this visualization on its own page →
Language
Go
Contributors
158
Lines of Code
28,270
From
2015-12-14
To
2022-06-04
Advertisement
About moby/buildkit
BuildKit is a toolkit for converting source code into build artifacts in an efficient, expressive, and repeatable manner. Written in Go, it serves as the modern builder for Docker and other container systems, offering concurrent dependency resolution, efficient instruction caching, and automatic garbage collection. The project is designed to be Dockerfile-agnostic, meaning it can work with various build definition formats beyond traditional Dockerfiles.
The toolkit is composed of a buildkitd daemon and buildctl client, with the daemon supporting multiple worker backends including OCI (runc) and containerd. Key capabilities include build cache import and export to various backends like registries, local directories, GitHub Actions, S3, and Azure Blob Storage. BuildKit supports nested build job invocations, distributable workers, multiple output formats, and execution without root privileges. It introduces LLB, a binary intermediate format comparable to LLVM IR, which enables concurrent execution and efficient caching while remaining vendor-neutral.
BuildKit has achieved significant adoption across the container ecosystem, serving as the default builder in Docker Engine since version 23.0 and powering numerous projects including Moby/Docker, Tekton Pipelines, Docker buildx, Dagger, Earthly, Gitpod, and many others. The project supports an extensive ecosystem of frontends that compile different languages and build formats into LLB, including Buildpacks, Earthfile, HLB, Rust's Cargo Wharf, Python, Nix, and specialized formats for platforms like Unikraft. It can be deployed across Linux, Windows, and macOS, with support for rootless execution, Kubernetes deployments, and various containerization approaches.
Advertisement