Open-Source Wikis

/

containerd

/

By the numbers

containerd/containerd

By the numbers

Data collected on 2026-04-30 from the main branch at commit 2976f38c.

Size

  • 1357 Go and proto source files outside vendor/.
  • 307 of those are test files (_test.go) — roughly a 1:3.4 test-to-code file ratio.
  • ~16,701 commits in the repository's history (since the initial commit on 2015-11-05).
  • 129+ built-in plugins registered via cmd/containerd/builtins/builtins.go and the snapshotter packages.

Languages

xychart-beta horizontal
    title "Source files by language (non-vendored)"
    x-axis "Files" 0 --> 1400
    y-axis [Go, "Protobuf (.proto)", "Bash / shell", "Markdown"]
    bar [1290, 60, 35, 80]

(Counts are approximate; Markdown excludes the releases/ notes directory but includes docs/ and the README/CONTRIBUTING/etc. at the root.)

Activity

  • Top committers (all time, by commit count): Derek McGowan, Michael Crosby, Phil Estes, Lantao Liu, Maksym Pavlenko, Akihiro Suda, Wei Fu, Sebastiaan van Stijn, Stephen J Day, Mike Brown, Kenfe-Mickaël Laventure, Samuel Karp, Kazuyoshi Kato.
  • Bot-attributed commits (lower bound): ~444 commits authored by dependabot[bot]. This counts only commits whose author is the bot itself; PRs that mention Co-authored-by: ...[bot] are not separately tallied here.
  • The daemon's cmd/containerd/builtins and the snapshotter packages are touched in nearly every release because new plugins land or are gated on platforms.

Repository structure

Top-level directory Files (Go/proto, non-test)
core/ Largest source area; contains content, images, runtime, snapshots, sandbox, transfer interfaces and built-ins
plugins/ Plugin registrations and platform-specific implementations
internal/cri/ The CRI plugin — by itself ~150 Go files
pkg/ Reusable helper packages (oci, namespaces, archive, ioutil, sys, …)
client/ Embeddable client (~30 files)
cmd/ main packages for the binaries
api/ Protobuf definitions for all gRPC/ttrpc services

Build & CI footprint

  • 19 GitHub Actions workflows under .github/workflows/ (CI, nightly, Windows, fuzz, code-scan, release, etc.).
  • The Makefile defines 50+ targets; make ci runs check binaries check-protos coverage.
  • Lint config: .golangci.yml (~3 KB).

Test surface

  • ~307 _test.go files. Tests segment into three buckets:
    1. Plain unit tests (make test)
    2. Tests requiring root (make root-test, gated by testutil.RequiresRoot)
    3. End-to-end tests in integration/ and CRI integration in script/test/cri-integration.sh

Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.

By the numbers – containerd wiki | Factory