This release introduces major performance, scalability, and security improvements:
- ~40% lower memory footprint across the DNStap collector, wire-DNS decoders, and JSON serialization.
- Optional multi-worker pool for improved high-throughput scalability.
- Distroless runtime image for a smaller Docker image and reduced attack surface.
💡 Enhancements
- feat: add UPX compression for linux, darwin and freebsd release binaries by @dmachard in #1300
- feat(docker): switch runtime image to distroless/static-debian13 with UPX compression by @dmachard in #1301
- perf(dnsutils): fast direct JSON encoder & modular transformer encoding by @dmachard in #1296
- perf(dnsutils,workers): precompile text formatter with opcode dispatch by @dmachard in #1297
- perf(dnsutils): add zero-alloc fast-path for uncompressed DNS question decoding by @dmachard in #1298
- perf(collectors,workers): lazy timestamp formatting across DNSTap and PowerDNS collectors by @dmachard in #1299
- perf(workers): optimize flat-json encoding across loggers and add benchmarks by @dmachard in #1294
- perf(workers): update worker telemetry channels with atomic counters by @dmachard in #1295
- perf(prom-collector): optimize prometheus metrics using atomic counters by @dmachard in #1293
- perf(dnsutils): optimize memory and CPU by using DNSMessage pointers by @dmachard in #1291
- perf(dnstap collector): add configurable worker pool for high-throughput scalability by @dmachard in #1289
- perf(dnsutils): optimize JSON serialization and DNS decoder by @dmachard in #1290
- perf(dnstap collector): add configurable socket read buffer size by @dmachard in #1288
- perf(dnstap collector): optimize processor hot path allocations and enum lookups by @dmachard in #1287
Full Changelog: v2.5.0...v2.6.0-beta6