moby/moby
By the numbers
A snapshot of the Moby codebase. Data collected on 2026-04-30 against commit ee03fb1b2d on master.
Size
| Slice | Files | Lines |
|---|---|---|
| Go (total, excl. vendor) | 2,172 | 375,565 |
| Go test files | 772 | (incl. above) |
| Go non-test files | 1,400 | (incl. above) |
| Markdown | varies | 58,157 |
| Shell scripts | varies | 2,783 |
| YAML (incl. swagger.yaml) | varies | 349,937 |
| Protobuf | varies | 344 |
api/swagger.yaml alone is ~467 KB and dominates the YAML count. The legacy integration-cli/ test suite still contributes the largest individual files in the repo (over 6,000 lines for docker_cli_build_test.go).
xychart-beta horizontal title "Lines of source by language (excl. vendor)" x-axis ["Go", "YAML", "Markdown", "Shell", "Proto", "Dockerfile"] y-axis "lines" bar [375565, 349937, 58157, 2783, 344, 101]
Where Go code lives
Top directories by file count:
| Directory | Go files |
|---|---|
daemon/libnetwork/ |
317 |
daemon/internal/ |
235 |
api/types/ |
122 |
daemon/logger/ |
90 |
daemon/server/ |
81 |
daemon/pkg/ |
64 |
internal/testutil/ |
60 |
daemon/builder/ |
58 |
daemon/cluster/ |
56 |
daemon/volume/ |
55 |
daemon/containerd/ |
50 |
daemon/graphdriver/ |
49 |
integration/container/ |
39 |
daemon/command/ |
31 |
integration/network/ |
27 |
The two clear giants are libnetwork (the in-tree CNM networking library) and daemon/internal/, which absorbed several formerly public utility packages over the last year (see Lore).
Test-to-source ratio
| Module | Total Go files | Test files | Ratio |
|---|---|---|---|
daemon/ |
1,309 | 348 | ~27% test files |
api/ |
126 | 12 | ~10% test files |
client/ |
269 | 128 | ~48% test files |
client/ is the most test-heavy module — it's mostly small per-endpoint files with paired tests. The daemon's coverage is bolstered by the integration suites under integration/ and integration-cli/.
Largest source files
| File | Lines |
|---|---|
integration-cli/docker_cli_build_test.go |
6,245 |
integration-cli/docker_cli_run_test.go |
4,377 |
daemon/libnetwork/networkdb/networkdb.pb.go (generated) |
3,091 |
integration/networking/bridge_linux_test.go |
2,282 |
integration-cli/docker_cli_daemon_test.go |
2,255 |
daemon/libnetwork/network.go |
2,207 |
integration-cli/docker_cli_swarm_test.go |
2,050 |
daemon/daemon.go |
1,921 |
daemon/libnetwork/drivers/bridge/bridge_linux.go |
1,920 |
integration-cli/docker_cli_network_unix_test.go |
1,814 |
The legacy CLI integration suite owns five of the top ten. daemon/daemon.go and daemon/libnetwork/drivers/bridge/bridge_linux.go are the two largest non-test, non-generated files; both are explicit refactor targets in ROADMAP.md.
Activity
| Period | Commits |
|---|---|
| 2025-05 | 399 |
| 2025-06 | 257 |
| 2025-07 | 561 |
| 2025-08 | 428 |
| 2025-09 | 313 |
| 2025-10 | 491 |
| 2025-11 | 366 |
| 2025-12 | 247 |
| 2026-01 | 253 |
| 2026-02 | 227 |
| 2026-03 | 225 |
| 2026-04 | 252 |
Rolling ~300 commits/month over the past year. The 2025-07 spike coincides with the consolidation of libnetwork and several previously-external packages into daemon/internal/ (see Lore).
Lifetime totals
- Total commits on
master: 56,403. - First commit: 2013-01-18 (Andrea Luzzardi).
- Distinct human contributors (all time): ~2,715.
- Tags: 561 across all years; release cadence rose to 80+ tags/year in 2025–2026 due to the multi-module SemVer split.
Bot-attributed commits
This codebase has approximately 0% of commits explicitly co-authored by [bot] accounts (factory-droid[bot], dependabot[bot], github-actions[bot], copilot[bot]). This is a lower bound on AI/automation involvement — Renovate, Dependabot, and similar tools that author commits without Co-authored-by: trailers are not counted, and inline-AI tools leave no trace in git history at all.
TODOs / FIXMEs
- ~2,103 occurrences of
TODO,FIXME,HACK, orXXXacross ~550 Go files (excluding vendor). - The earliest
TODOmarkers in the codebase trace back to commits from early 2014, when the Engine repo was reorganized.
Engine and module tags
| Year | Tags created |
|---|---|
| 2013 | 57 |
| 2014 | 24 |
| 2015 | 41 |
| 2016 | 55 |
| 2017 | 62 |
| 2018 | 37 |
| 2019 | 39 |
| 2020 | 18 |
| 2021 | 13 |
| 2022 | 13 |
| 2023 | 34 |
| 2024 | 56 |
| 2025 | 82 |
| 2026 | 30 (YTD) |
The slow 2020–2022 stretch reflects the pre-Mirantis Docker era when the project's release cadence flattened. The recent uptick coincides with the v25 → v29 Engine rebranding cycle and the introduction of the independently-tagged api/ and client/ sub-modules.
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.