Fluxheim 1.2.6
Fluxheim 1.2.6 Release Notes
Summary
Fluxheim 1.2.6 is a focused cache follow-up for full slice-based range cache
composition. It extends the 1.2.5 exact bounded range cache with an opt-in
fixed-slice engine for large proxy-cache objects.
- Release type: focused slice-cache follow-up
- Compatibility: opt-in; existing cache range behavior remains unchanged unless
range.slice.enabled = true - Primary area: proxy cache
Added
- Added
[cache.range.slice],[vhosts.cache.range.slice], and route-scoped
slice policy. - Added normalized slice cache keys for fixed-size byte slices.
- Added direct slice-cache response composition before upstream proxying.
- Added bounded missing-slice fill from origin using normalized single-slice
Rangerequests. - Added per-slice request collapsing so concurrent clients requesting the same
missing slice do not all fetch it from origin. - Added support for:
- bounded ranges, such as
Range: bytes=1000-1999; - open-ended ranges, such as
Range: bytes=1000-; - suffix ranges, such as
Range: bytes=-65536; - multipart multi-range responses when all requested ranges can be composed
from fresh compatible slices.
- bounded ranges, such as
- Added
If-Rangehandling for slice responses. Fluxheim serves from slices
only when the cachedETagorLast-Modifiedmatches; otherwise the request
falls back to the normal proxy path. - Exact admin purges remove all indexed slice entries for the same request path
when slice caching is enabled.
Config Example
[cache.range]
enabled = true
max_bytes = "128MiB"
[cache.range.slice]
enabled = true
size_bytes = "1MiB"
max_slices = 128
fill_missing = trueSafety Model
- Slice caching remains disabled by default.
- Each slice is stored under its own key and cannot collide with full-object
cache entries or 1.2.5 exact range entries. - Missing-slice fill only stores upstream
206 Partial Contentresponses whose
Content-Range,Content-Length, content type, total object length, and
validators are compatible. Content-Encodingresponses are not admitted to the slice cache unless they
are explicitly identity encoded.range.slice.size_bytesmust not exceedcache.max_object_bytes.range.max_bytesmust not exceed
range.slice.size_bytes * range.slice.max_slices.
Validation
Release validation should include:
cargo fmt --all --check
cargo test --lib
cargo clippy --all-targets -- -D warnings
sh scripts/smoke_proxy_cache.shThe proxy cache smoke now verifies slice fill, slice hit, open-ended ranges,
suffix ranges, multipart multi-range composition, and cached slice If-Range
matches.
Checksums And Signatures
- Commit:
17aa33f376ce25fb36b470044f6c1f6382a0c60e - Local gate: GitHub CI green before tag; local release metadata checks passed
- CodeQL/code scanning: no open release-blocking alerts before tag
- Source archive checksums:
0195168efd8ac886d9e2fc3707b54cea340c8e8fa3d837c4a8e301a3065d20b4 fluxheim-1.2.6.tar.gz7b457fe5d3bfaace1dd6cccb397fb75ae16da27c9e8a4faecddca8e5c0898eaa fluxheim-1.2.6.zip
- Binary checksums:
d4137182dd8589021becc936a5b8c42572fee92e8e610da3743ae9f5350349c0 fluxheim-1.2.6-full-x86_64-linux.tar.gz86a2f0a99dd1d070131d3212c8cb512b26c2ea07c975555b3f991759c6c2a104 fluxheim-1.2.6-cache-x86_64-linux.tar.gz
- SBOM checksums:
9568ddf2e0e5e91aeab13a277bba0fb732ff33c63169698415dbd0c9893f74ef fluxheim.spdx.json3d5ceea012cbe9360c48919c3528148843eec44406f10175def0a1bfaf748780 fluxheim.cyclonedx.json
- Reproducible build:
fcb59dd0693bd38e2ebdc0b36b37a72d7b36d10be1857f44ab101ac936350258
- Full Build Container digests:
- Wolfi:
ghcr.io/valkyoth/fluxheim@sha256:0eb134f33b7d6e0707fdb1c7a911fb5df022acfe5796522920411e7919dc7c28 - Alpine:
ghcr.io/valkyoth/fluxheim@sha256:3cf8dd421f523699637a3d8ac3ac5527bd6dd63eed01e542166d8f10037f5626 - SUSE Micro:
ghcr.io/valkyoth/fluxheim@sha256:b2cc0cc0de9a955ea303f1f64327fad0b510a76679233221cf2091e8b8c03668 - Debian:
ghcr.io/valkyoth/fluxheim@sha256:880c87cc102ad7ea4939b7c9eb2cf63c1f07fec019be9993944ad2d4bbfa75eb
- Wolfi:
- Cache Build Container digests:
- Wolfi:
ghcr.io/valkyoth/fluxheim@sha256:83980d2556d9858ab1c222b4a5f0d58bec594071e4f46c4450a4c735062f9c94 - Alpine:
ghcr.io/valkyoth/fluxheim@sha256:18d0b8e76318ac5d2429ce843486a145ffa9d3acd99594437a846285e58cf9e9 - SUSE Micro:
ghcr.io/valkyoth/fluxheim@sha256:1f3fba32cb18b03ac409ab53ada0c20cbcaa39870d97af073ee14c7fd479dcb9 - Debian:
ghcr.io/valkyoth/fluxheim@sha256:1df4dd3679def2c21e5b670a7c5777f3f579332202a555b36b0ac0f1c6e66413
- Wolfi:
- Tag signature:
Good "git" signature for 1921261+eldryoth@users.noreply.github.com with ED25519 key SHA256:EoLRQ5k4J5pYz3UMFmkrV798gYFNkToGS2xEPvebqB4