Open-Source Wikis

/

Cilium

/

By the numbers

cilium/cilium

By the numbers

Data collected on 2026-04-30 from git log against main at commit b2f2bf43dd.

Size

Surface Files
Go source files (excl. vendor) ~4,065
Go test files ~876
BPF C source files (.c) ~167
BPF C headers (.h) ~187
Top-level packages under pkg/ ~120
xychart-beta horizontal
    title "Lines of Go (KB on disk, excl. vendor)"
    x-axis ["pkg/", "operator/", "cilium-cli/", "hubble/", "daemon/"]
    y-axis "Size (KB)" 0 --> 30000
    bar [26456, 7448, 2996, 496, 436]
xychart-beta horizontal
    title "BPF dataplane size (KB on disk)"
    x-axis ["bpf/"]
    y-axis "Size (KB)" 0 --> 12000
    bar [10172]

The bulk of the codebase lives in pkg/, where each subdirectory is a focused package consumed by one or more binaries. The agent binary (daemon/) is intentionally thin — it only wires Hive cells from pkg/. The largest single Go binary by source surface is the operator (operator/), which embeds many cluster-wide controllers.

Activity

  • Total commits since the project began (Dec 2015): 56,000+
  • Commits per year (last six years):
Year Commits
2020 4,504
2021 3,465
2022 3,998
2023 6,497
2024 5,768
2025 5,796
2026 (YTD, through April) 1,431
  • Commits in the last 90 days (as of 2026-04-30): ~1,160.
  • Trend: activity has held steady at roughly 5,000–6,500 commits per year since 2023, the year the agent was migrated to Hive cells and the test infrastructure was modernised.

Bot-attributed commits

Approximately 9.9% of commits since 2024-01-01 were authored or co-authored by bots (renovate-bot, github-actions[bot], dependabot[bot], cilium-renovate[bot], ci-cilium, etc.). 1,529 of 15,384 commits since 2024-01-01 match a bot pattern. This is a lower bound — inline AI-assisted edits and CI-driven docs/CRD regeneration commits leave no bot trace in the author field.

Activity hotspots

Directories that change most frequently are the agent's startup wiring (daemon/cmd/), the policy engine (pkg/policy/), the BPF maps (pkg/maps/), and Helm values (install/kubernetes/cilium/values.yaml). The Documentation/ tree is also a churn hotspot because every CRD change requires a docs update enforced by CI checks under Documentation/check-*.sh.

Complexity

  • Largest C dataplane file: bpf/bpf_lxc.c and bpf/bpf_host.c are both multi-thousand line programs that embed many of the per-pod and per-host eBPF entry points.
  • Largest Helm values file: Documentation/helm-values.rst is auto-generated and exceeds 200 KB.
  • Vendored modules: Cilium commits its full Go vendor tree (vendor/) — about 20 sub-trees including Kubernetes client-go, Envoy go-control-plane, Hubble protobufs, gops, and statedb.

Test surface

  • Go unit tests: ~876 _test.go files, run via make unit-tests.
  • BPF unit tests: under bpf/tests/ and bpf/complexity-tests/, run via make -C bpf unit-test.
  • Integration tests: privileged unit tests under various pkg/*/ directories, run via make tests-privileged.
  • End-to-end tests: Ginkgo suite under test/ (legacy) and the cilium-cli connectivity test suite (current).
  • CI workflows: dozens of GitHub Actions workflows under .github/workflows/, including matrix runs across kernel versions and Kubernetes versions.

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

By the numbers – Cilium wiki | Factory