caddyserver/caddy
By the numbers
Data collected on 2026-04-30 against master at commit 18ab0f95.
This page is a snapshot of the repository as code, not as a community. It does not include per-person contributor metrics — those are intentionally omitted.
Size
| Metric | Value |
|---|---|
| Total Go source files | 309 |
| Production files (non-test) | 216 |
Test files (*_test.go) |
93 |
| Production lines of Go | ~68,100 |
| Test lines of Go | ~27,300 |
| Test-to-code ratio | ~0.40 |
| Top-level Go packages | 8 (caddy, caddycmd, caddyconfig, caddyfile, caddyhttp, caddytls, caddypki, caddyevents, …) |
| Direct Go module deps | ~50 (go.mod) |
xychart-beta horizontal
title "Lines of Go (production) by major area"
x-axis ["modules/caddyhttp", "core (caddy/*)", "modules/caddytls", "caddyconfig", "modules/caddypki", "cmd", "modules/logging", "modules/caddyevents"]
y-axis "Lines" 0 --> 30000
bar [27000, 14000, 9500, 6800, 3200, 2900, 2700, 1100](Numbers are approximate and rounded; derived from wc -l on production sources.)
Activity
| Metric | Value |
|---|---|
| Commits in repo history | 2,551 |
| Earliest commit | 2019-03-26 (start of v2 rewrite) |
| Most recent commit | 2026-04-25 |
| Commits in the last 90 days | ~120 |
| Unique commit authors (all time) | 389 |
| Released tags | v0.5.0 … v2.11.2 |
Churn hotspots (last 90 days)
| File | Commits |
|---|---|
go.mod |
18 |
go.sum |
16 |
modules/caddyhttp/reverseproxy/reverseproxy.go |
9 |
admin.go |
9 |
listeners.go |
6 |
caddyconfig/httpcaddyfile/tlsapp.go |
6 |
caddy.go |
6 |
modules/caddyhttp/reverseproxy/httptransport.go |
5 |
modules/caddyhttp/matchers.go |
5 |
.github/SECURITY.md |
5 |
The reverse proxy and the admin/core surfaces dominate recent churn — same as in past quarters. TLS auto-HTTPS and matchers are also recurring.
Bot-attributed commits
dependabot[bot] accounts for ~41 commits across the lifetime of the repo (mostly dependency bumps). No other automation accounts (e.g. factory-droid[bot], github-actions[bot], copilot[bot]) are present in the git author list. This is a lower bound on AI-assisted work, since inline AI tools that do not co-author commits are invisible here.
The AGENTS.md file at the repo root documents the project's AI contribution policy — disclosed, fully comprehended, tested, and license-checked.
Complexity
| Metric | Value |
|---|---|
| Largest production file | modules/caddyhttp/reverseproxy/reverseproxy.go (~68 KB, ~2,000+ lines) |
| Largest core file | modules/caddyhttp/server.go (~41 KB) |
| Other size-leaders | caddyconfig/httpcaddyfile/httptype.go (modules/caddyhttp/matchers.go (modules/caddytls/ech.go (caddyconfig/httpcaddyfile/tlsapp.go ( |
| Module IDs registered (default build) | ~145 unique IDs (count of RegisterModule literal arguments under modules/ and caddyconfig/) |
The shape of the codebase: a small, stable core (caddy.go, admin.go, modules.go, context.go … under 15 KLOC) and a dense HTTP module (modules/caddyhttp/) where most of the surface area lives.
Where the numbers come from
- Line counts:
wc -lon*.go(excluding_test.gofor production counts). - File counts:
find . -name '*.go'. - Author and commit counts:
git logagainst the local checkout. - Module ID counts:
grep -h 'ID:.*"'plus a unique sort acrossmodules/.
If you regenerate this page later, refresh the snapshot date at the top.
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.