Releases
v0.22.0
Compare
Sorry, something went wrong.
No results found
0.22.0 (2026-10-04)
⚠ BREAKING CHANGES
cachekitio: replace httpx with urllib3 for CachekitIO requests (LAB-7931) (#502 )
decorators: refuse an encrypting serializer at decoration (LAB-5320) (#467 )
Features
cachekitio: replace httpx with urllib3 for CachekitIO requests (LAB-7931) (#502 ) (3fe6772 )
cachekitio: send a cachekit-py/<version> User-Agent (LAB-7052) (#479 ) (9dc474a )
invalidation: announce each invalidation on a Redis pub/sub channel (LAB-652) (#470 ) (5733626 )
invalidation: detect a silent Redis peer on the listener with TCP_USER_TIMEOUT (LAB-7586) (#499 ) (986e4ff )
invalidation: opt-in listener evicts L1 on other processes' invalidations (LAB-652) (#472 ) (1ae8f12 )
l1: a forked child starts with an empty L1 (LAB-652) (#471 ) (5097c12 )
Bug Fixes
arrow: reject dict values that pyarrow stores as the wrong column (LAB-7490) (#459 ) (5cec332 )
cachekitio: build the sync client on HTTP/1.1 with a 32-connection pool (LAB-7062) (#489 ) (80dbf5c )
cachekitio: never reuse a parent's pooled connection after fork (LAB-7146) (#468 ) (15c1351 )
cachekitio: parse X-CacheKit-Fresh-For with the spec grammar (LAB-7838) (#504 ) (6cb5f4d )
cachekitio: retry a write once on 503 with a short Retry-After (LAB-7686) (#477 ) (77a16a5 )
circuit-breaker: stop the decorated function's exceptions tripping the breaker (LAB-5319) (#485 ) (af48926 )
decorators: degrade on async lock errors instead of raising or polling (LAB-5346) (#473 ) (6f901f6 )
decorators: refuse an encrypting serializer at decoration (LAB-5320) (#467 ) (ef4a7f2 )
invalidation: delete the pre-0.20.0 twin on no-args invalidation (LAB-5308) (#464 ) (f8365d3 )
invalidation: recommend --py-call-uwsgi-fork-hooks, never --py-call-osafterfork, for uWSGI (LAB-7855) (#491 ) (3e192f7 )
invalidation: throttle the listener's reconnect WARNING to one a minute (LAB-7638) (#482 ) (b3a6c8a )
l1: bound one entry to an eighth of the L1 budget (LAB-7823) (#487 ) (35b6791 )
metrics: size the duration and size histogram buckets for ms and bytes (LAB-7587) (#476 ) (f1a52bd )
object-cache: repair L1-only caches in a forked child (LAB-7856) (#494 ) (0a78131 )
redaction: digest keys holding an unpaired surrogate instead of raising (LAB-7624) (#497 ) (000b110 )
redis: decide on hiredis before redis imports so 3.14t keeps the GIL off (LAB-7077) (#465 ) (c19ab6b )
swr: release refresh slots stranded on stopped event loops (LAB-7295) (#488 ) (b41c626 )
Performance Improvements
cachekitio: fan out whole-function invalidation deletes, 16 at a time (LAB-7070) (#478 ) (72026b1 )
cachekitio: keep idle connections 390 s with TCP keepalive 60/10/3 (LAB-7061) (#483 ) (c695bf2 )
cachekitio: skip the uncontended double-check read and release the miss lock in the background (LAB-7064) (#480 ) (f4b8dfe )
decorators: decide refresh_ttl_on_get from Fresh-For, refresh in the background (LAB-7074) (#435 ) (cc9bf65 )
metrics: recover the perf-ir drift on the L2 and miss paths (LAB-7801) (#481 ) (d200c3a )
serializers: memoize CK frame headers and pack AutoSerializer values without rebuilding the tree (LAB-7069) (#441 ) (c2e907a )
You can’t perform that action at this time.