Skip to content

v1.4.0

Choose a tag to compare

@wtigero wtigero released this 27 Jun 14:05
· 53 commits to main since this release
2b6c917

Changes since v1.3.1

2b6c917 docs: fix v1.4.0 release-record gaps found in review
c51586e chore(release): date-stamp v1.4.0 changelog (2026-06-27)
fb5e324 docs: complete v1.4.0 changelog, fix doc refs, revalidate perf at HEAD
12d6a80 docs(wing): note per-IP cap must key on socket peer, not XFF
ddc48b0 feat(resource): input validation + OpenAPI 3.1 for auto-CRUD
2e67c20 fix(prometheus): defer in-flight gauge Dec so a panic can't leak it
1b282e4 fix(middleware): Logger records real latency (was always 0)
2ba7676 feat(wing): accept-side DoS limits — connection cap, per-IP, accept-rate
8b02738 test(bench): obs enabled-path A/B + HPA note; drop dead response-side traceparent inject (D3)
f124309 fix(wing): close takeover File on shutdown to prevent fd double-close
927c066 fix(wing): shared takeover body budget + pipelined-after-body byte preservation
8c77fc4 feat: typed-handler test client + OpenAPI 3.1 polish (D4)
1348c4e feat: turnkey observability (contrib/observability) + WithLogEnricher core seam
88acc18 fix(wing): XFF dedicated fields and segmentation-independent 431
3fe1fc2 Wing: enforce request-size contract (BodyLimit/HeaderLimit/TrustProxy + 413/431/501)
4e9d300 ci: enforce doc correctness for exported APIs and current guides
1eed571 bench: add realistic API profile route across kruda/fiber/actix
c57decb feat: opt-in RFC 9457 problem+json error responses

Performance

Run benchmarks: go test -bench=. -benchmem -count=5 -tags kruda_stdjson ./bench/...

What's Changed

  • feat: opt-in RFC 9457 problem+json error responses by @wtigero in #131
  • bench: add realistic API profile route across kruda/fiber/actix by @wtigero in #132
  • ci: enforce doc correctness for exported APIs and current guides by @wtigero in #133
  • Wing: enforce request-size contract (BodyLimit/HeaderLimit/TrustProxy + 413/431/501) by @wtigero in #134
  • Wing: X-Forwarded-For/X-Real-IP dedicated fields + 431 for oversized header line by @wtigero in #135
  • feat: turnkey observability (contrib/observability) + WithLogEnricher core seam by @wtigero in #136
  • feat: typed-handler test client + OpenAPI 3.1 polish (D4) by @wtigero in #137
  • Wing: shared takeover body budget + pipelined-after-body byte preservation by @wtigero in #138
  • fix(wing): close takeover File on shutdown to prevent fd double-close by @wtigero in #139
  • test(bench): observability enabled-path A/B + quantified HPA note (D3) by @wtigero in #140
  • feat(wing): accept-side DoS limits (connection cap, per-IP, accept-rate) by @wtigero in #141
  • fix(middleware): Logger records real latency (was always 0) by @wtigero in #142
  • fix(prometheus): defer in-flight gauge Dec so a panic can't leak it by @wtigero in #143
  • feat(resource): input validation + OpenAPI 3.1 for auto-CRUD by @wtigero in #144
  • docs(wing): note per-IP cap must key on socket peer, not XFF by @wtigero in #145
  • docs(changelog): complete v1.4.0 entries + fix stale counts and tag refs by @wtigero in #146
  • chore(release): date-stamp v1.4.0 changelog by @wtigero in #147
  • docs: fix v1.4.0 release-record gaps found in review by @wtigero in #148

Full Changelog: v1.3.1...v1.4.0