diffyml#

A fast, structural YAML diff tool with built-in Kubernetes intelligence. One dependency, minimal attack surface, native CI annotations for GitHub, GitLab, and Gitea.

diffyml output

brew install szhekpisov/diffyml/diffyml
diffyml old.yaml new.yaml

Why diffyml?#

Fastest structural YAML diff at scale. On large (5K lines) and xlarge (50K lines) inputs diffyml is 1.5–1.9× faster than the nearest YAML-aware competitor. On small/medium files it ties within milliseconds — the residual overhead comes from capabilities the simpler tools lack (x509 inspection, remote URL fetching, AI summaries).

One dependency, zero surprises. A single module dependency (yaml.v3) and pure Go stdlib. Auditable in minutes.

Gets YAML right. Dotted keys, type preservation, mixed-type lists, nil values — concrete edge cases other tools get wrong.

Where to next#

  • Install — Homebrew, Docker, go install, release binaries
  • Quick Start — three minimal examples that cover 90% of usage
  • Output Formats — pick the right format for terminal review or CI
  • CI Integration — GitHub Actions, GitLab Code Quality, Gitea, kubectl, git
  • Reference — every flag, auto-generated from source

How it compares#

Featurediffymldyffplain diff
YAML-aware (structural)YesYesNo (line-based)
Kubernetes resource matchingapiVersion + kind + name (or generateName)apiVersion + kind + nameNo
Rename detectionYes (content similarity)Yes (identifier)No
API version migrationYes (--ignore-api-version)NoNo
CI annotation formats3 (GitHub, GitLab, Gitea)00
Module dependencies1 (yaml.v3)230
Performance (78 KB)19 ms120 ms (6.4×)6 ms
Performance (780 KB)129 ms1,146 ms (8.9×)45 ms

Comparison based on dyff v1.11.3 and diffyml v1.5.23. See the PERFORMANCE doc for full methodology.