Open-Source Wikis

/

Caddy

/

By the numbers

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.0v2.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 (61 KB), modules/caddyhttp/matchers.go (54 KB), modules/caddytls/ech.go (43 KB), caddyconfig/httpcaddyfile/tlsapp.go (42 KB)
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 -l on *.go (excluding _test.go for production counts).
  • File counts: find . -name '*.go'.
  • Author and commit counts: git log against the local checkout.
  • Module ID counts: grep -h 'ID:.*"' plus a unique sort across modules/.

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.

By the numbers – Caddy wiki | Factory