GoPdfSuit v6.0.0 - Release Notes
Release date: June 2026
Tag: v6.0.0
Full changelog: v5.0.0...v6.0.0
Overview
v6.0.0 is a major performance and compliance release. It bumps the module to gopdfsuit/v6, requires Go 1.26.4, and optimizes the PDF engine, Gin HTTP layer, and PyPDFSuit bindings.
Headline: full PDF/A-4 + PDF/UA-2 compliance at ~9,600 ops/s mean on Zerodha workloads (+243% vs the compliant pre-opt baseline), with veraPDF passing on retail, active, and HFT outputs.
Scope: 93 commits, 637 files, +112,770 / -6,262 lines.
Performance at a Glance
| Surface | Baseline | v6.0.0 | Gain |
|---|---|---|---|
| Zerodha in-process (compliant) | 573 ops/s (Go 1.24) | 9,594 mean / 10,005 peak | +243% vs 2,799 pre-opt |
| Gin HTTP (k6 weighted) | ~674 req/s | 1,223 req/s | ~1.8x |
| Gin HTTP (retail-only) | - | 3,965 req/s | - |
| PyPDFSuit (honest path) | 221 ops/s | 836 ops/s | +278% |
BenchmarkGoPdfSuit |
26.0 ms/op | 23.0 ms/op | -11.6% |
| GoPDFKit parity | 5/7 wins | 7/7 wins | up to +788% |
All Zerodha tiers (retail, active, HFT) pass PDF/A-4 and PDF/UA-2. SlopGuard: 218/218 PERF findings fixed.
Breaking Changes
Module path: gopdfsuit/v5 -> gopdfsuit/v6. Update imports and run:
go get github.com/chinmay-sawant/gopdfsuit/v6@v6.0.0
go mod tidyimport "github.com/chinmay-sawant/gopdfsuit/v6/pkg/gopdflib"| Change | Action |
|---|---|
| Go 1.26.4 required | Upgrade toolchain and Docker images |
pypdfsuit 6.0.0 |
pip install pypdfsuit==6.0.0 |
| ECDSA P-256 default signing | Verify signing integrations (80% retail workload) |
veraPDF in make test |
PDF/A-4 + PDF/UA-2 gates now mandatory |
GIN_FAST_API=1 |
Optional Gin fast path |
| Internal types changed | ExtraObjects, StructElem.Kids, redact objMap (forks only) |
What's New
PDF engine
- Buffer pooling, direct zlib streaming, pre-sized page content streams, pooled
compress/flate.Writer - Structure tree: maps → slices, iterative walks, lazy arena (
arenaActivationThreshold=512),tdLeafFast, compliant HFT TR → TD hierarchy - Cached ICC profiles, static XMP shell, precomputed font hints
- Bounded caches (
subsetCache,imgCache,propsCache,sharedRowRenderCache) - fixes k6 OOM/hang regression - XFDF
startxrefrepair for object streams - Document ID hash:
crypto/md5→crypto/sha256
HTTP layer (gopdfsuit)
- Sonic JSON decode with pretouch
- HFT decode fast path with row preallocation
- Template pool and PEM/signer cache
- Bounded
sharedRowRenderCache(4,096 entries, 64 MB cap)
PyPDFSuit
- Specialized serializers replacing
to_dict()tree walks - Compact UTF-8 JSON encoding
- Honest benchmark surface (JSON payload cache removed from published numbers)
Quality & compliance
- 218/218 SlopGuard PERF findings remediated
- veraPDF post-test gate wired into
make test(36/36 PASS) CONTRIBUTING.mdandguides/release-prep.mdadded- PyPI auto-publish on
v*tags
Go 1.26.4 modernization
go fixmodernizer pass:min()/max()builtins,new(expr)pointer fields- Docker base:
golang:1.24.11→golang:1.26.4 - New guide:
guides/GO_1_26_4_FEATURE_GUIDE.md
Documentation & benchmarks
- README reframed as "Three PDF Engines, One Repo" with runtime performance table
- Expanded benchmark suite: data-table harnesses, 10×48-worker runs, GoPDFKit/Gotenberg comparisons
- Redesigned Performance and Comparison pages on the docs site
- Full optimization report corpus in
guides/optimizations/
Infrastructure
- Deslop CI workflow (
.github/workflows/deslop.yml) - fails on code-quality findings backend-testCI job runningmake test.github/FUNDING.ymlfor GitHub Sponsors
What's Changed
- Chore/pythonbenchmarks by @chinmay-sawant in #187
- Updated the performance and the comparision section by @chinmay-sawant in #188
- CI CD deslop by @chinmay-sawant in #190
- Exp: Cursor optimizations by @chinmay-sawant in #191
- Updating the readme file by @chinmay-sawant in #193
- Removed the old table benchmarks by @chinmay-sawant in #194
- Experimental: Additional performance improvements as per the optimizations guides by @chinmay-sawant in #195
- Upgrading and using the latest 1.26.4 go syntax by @chinmay-sawant in #198
- Create FUNDING.yml by @chinmay-sawant in #199
- Experimental: Improvements with the GPT-5.5-Medium Reasoning for the Zerodha 10x benchmarks by @chinmay-sawant in #200
Upgrade
# Go
go get github.com/chinmay-sawant/gopdfsuit/v6@v6.0.0 && go mod tidy
# Python
pip install --upgrade pypdfsuit==6.0.0
# Docker
docker pull chinmaysawant/gopdfsuit:6.0.0
# Verify
make testRoadmap
| Target | Status |
|---|---|
| Zerodha 8,000 ops/s (compliant) | Met at 9,594 ops/s |
| Gin weighted 1,500 req/s | ~82% (1,232 req/s peak) |
| Zerodha 15,000 ops/s | ~64%; Phases B/C planned |
| PyPDFSuit vs native Go | 836 vs 11,721 ops/s; CGO boundary remains |
Details: optimization executive summaries
Contributors
Thanks to @chinmay-sawant for all changes in this release.
Links
What's Changed
- Chore/pythonbenchmarks by @chinmay-sawant in #187
- Updated the performance and the comparision section by @chinmay-sawant in #188
- CI CD deslop by @chinmay-sawant in #190
- Exp: Cursor optimizations by @chinmay-sawant in #191
- Updating the readme file by @chinmay-sawant in #193
- Removed the old table benchmarks by @chinmay-sawant in #194
- Experimental: Additional performance improvements as per the optimizations guides by @chinmay-sawant in #195
- Upgrading and using the latest 1.26.4 go syntax by @chinmay-sawant in #198
- Create FUNDING.yml by @chinmay-sawant in #199
- Experimental: Improvements with the GPT-5.5-Medium Reasoning for the Zerodha 10x benchmarks by @chinmay-sawant in #200
Full Changelog: v5.0.0...v6.0.0