| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| skipper-v0.28.56-windows-amd64.zip | 2026-10-26 | 159.9 MB | |
| skipper-v0.28.56-linux-armv7.tar.gz | 2026-10-26 | 146.2 MB | |
| skipper-v0.28.56-linux-arm64.tar.gz | 2026-10-26 | 145.4 MB | |
| skipper-v0.28.56-linux-amd64.tar.gz | 2026-10-26 | 158.4 MB | |
| skipper-v0.28.56-darwin-arm64.tar.gz | 2026-10-26 | 156.2 MB | |
| skipper-v0.28.56-darwin-amd64.tar.gz | 2026-10-26 | 165.8 MB | |
| sha256sum.txt | 2026-10-26 | 613 Bytes | |
| README.md | 2026-10-26 | 2.6 kB | |
| v0.28.56 source code.tar.gz | 2026-10-26 | 5.3 MB | |
| v0.28.56 source code.zip | 2026-10-26 | 6.3 MB | |
| Totals: 10 Items | 943.5 MB | 8 | |
Changes
perf(routesrv): only recompress zones whose routes actually changed (#4378)
formatAndSet rebuilt every zone's compressed routing table whenever the global table changed, even if most zones' content was identical to what was already stored. In the common steady-state case - one availability zone's endpoints change while others don't - this wasted a full eskip.Fprint + gzip pass per untouched zone, and needlessly advanced their Last-Modified, defeating If-Modified-Since caching for those zones.
formatAndSet now hashes each zone once and only recompresses, re-counts, and re-timestamps a zone whose hash differs from what is already stored. Zones no longer present in zoneAwareRoutes are deleted from all internal maps so requests for them fall back to the global routing table instead of serving stale data.
│ before │ after │
│ sec/op │ sec/op vs base │
FormatAndSet-14 540.1m ± ∞ ¹ 536.1m ± ∞ ¹ ~ (p=1.000 n=5)
FormatAndSetNoChange-14 122.4m ± ∞ ¹ 126.4m ± ∞ ¹ ~ (p=0.548 n=5)
FormatAndSetOneZoneChanged-14 535.1m ± ∞ ¹ 475.7m ± ∞ ¹ -11.10% (p=0.008 n=5)
geomean 328.3m 318.3m -3.04%
│ before │ after │
│ B/op │ B/op vs base │
FormatAndSet-14 227.8Mi ± ∞ ¹ 227.8Mi ± ∞ ¹ ~ (p=0.841 n=5)
FormatAndSetNoChange-14 86.34Mi ± ∞ ¹ 86.34Mi ± ∞ ¹ ~ (p=1.000 n=5)
FormatAndSetOneZoneChanged-14 231.7Mi ± ∞ ¹ 229.7Mi ± ∞ ¹ -0.89% (p=0.008 n=5)
geomean 165.8Mi 165.3Mi -0.30%
│ before │ after │
│ allocs/op │ allocs/op vs base │
FormatAndSet-14 2.380M ± ∞ ¹ 2.380M ± ∞ ¹ ~ (p=0.897 n=5)
FormatAndSetNoChange-14 700.0k ± ∞ ¹ 700.0k ± ∞ ¹ ~ (p=1.000 n=5)
FormatAndSetOneZoneChanged-14 2.483M ± ∞ ¹ 2.483M ± ∞ ¹ 0.00% (p=0.008 n=5)
geomean 1.605M 1.605M -0.00%
Multiarch Docker image
Multiarch Docker image is available in GitHub's docker registry:
docker run -it ghcr.io/zalando/skipper:v0.28.56 skipper --help