Skip to main content

cachekit

Python caching, batteries included

Backend-agnostic caching with intent-based decorators — circuit breaker, distributed locking, Prometheus metrics, and optional zero-knowledge encryption on a Rust-powered core. Zero config to start, any backend when you scale.

PyPI Version Python Versions codecov License: MIT



Why cachekit?

Simple to use, works out of the box.

from cachekit import cache

@cache
def expensive_function():
    return fetch_data()

That's it. You get:

Feature Description
Circuit breaker Prevents cascading failures
Distributed locking Multi-pod safety
Prometheus metrics Built-in observability
MessagePack serialization Efficient with optional compression
Zero-knowledge encryption Client-side AES-256-GCM

Quick Start

Installation

pip install cachekit

Or with uv (recommended):

uv add cachekit

Setup (choose a backend)

cachekit exposes one decorator API over a pluggable backend abstraction. Pick the backend that fits your infrastructure — they're peers behind the same @cache API:

Backend Best for Select with
Redis Self-hosted, full control REDIS_URL / CACHEKIT_REDIS_URL
CachekitIO Managed, zero-ops (beta) CACHEKIT_API_KEY
Memcached High-throughput, existing infra CACHEKIT_MEMCACHED_SERVERS
File / L1-only Local dev, tests, no external deps CACHEKIT_FILE_CACHE_DIR / backend=None
# Run Redis locally or use your existing infrastructure
export REDIS_URL="redis://localhost:6379"
from cachekit import cache

@cache  # Auto-detects backend (defaults to Redis at localhost)
def expensive_api_call(user_id: int):
    return fetch_user_data(user_id)

More Backends

CachekitIO — Managed SaaS (Beta)
import os
from cachekit import cache

# Set your CachekitIO API key
# export CACHEKIT_API_KEY="your-api-key"  # pragma: allowlist secret

@cache.io()  # Uses CachekitIO SaaS backend — no Redis to manage
def expensive_api_call(user_id: int):
    return fetch_user_data(user_id)

cachekit.io is in closed beta — request access to get started.

Memcached — Optional
from cachekit import cache
from cachekit.backends.memcached import MemcachedBackend

# pip install cachekit[memcached]

backend = MemcachedBackend()  # Defaults to 127.0.0.1:11211

@cache(backend=backend)
def expensive_api_call(user_id: int):
    return fetch_user_data(user_id)

Requires: pip install cachekit[memcached] or uv add cachekit[memcached]


CachekitIO Cloud (Beta) Managed caching with zero infrastructure. L1+L2 caching, circuit breaker, and automatic failover — no Redis to manage. cachekit.io is in closed beta — request access to get started.


Intent-Based Optimization

cachekit provides preset configurations for different use cases:

# Speed-critical: trading, gaming, real-time
@cache.minimal
def get_price(symbol: str):
    return fetch_price(symbol)

# Reliability-critical: payments, APIs
@cache.production
def process_payment(amount):
    return payment_gateway.charge(amount)

# Security-critical: PII, medical, financial (needs a key: master_key= or CACHEKIT_MASTER_KEY)
@cache.secure(master_key=secret_key)
def get_user_profile(user_id: int):
    return db.fetch_user(user_id)

Setting CACHEKIT_MASTER_KEY instead of passing master_key= means every preset except @cache.secure and @cache.local must state its intent (encryption=False for plaintext), or it raises ConfigurationError at decoration: the key is a key source, never an on switch.

Feature @cache.minimal @cache.dev @cache.test @cache.production @cache.secure
Default TTL 300 s 300 s 300 s 600 s 600 s
Circuit Breaker - ✅ - ✅ ✅
Backpressure ✅ ✅ - ✅ ✅
Integrity Checking - ✅ - ✅ ✅ 🔒
Encryption - - - - ✅ Required
L1 SWR (L1-only mode) - ✅ - ✅ -
Prometheus Metrics - -¹ - ✅ ✅
Tracing - ✅ - ✅ ✅
Structured Logging - ✅ - ✅ ✅
Use Case High throughput Local debugging Deterministic tests Production reliability Compliance/security

¹ @cache.dev exports no Prometheus metrics except circuit_breaker_state, which is recorded for every function whose circuit breaker is enabled.

🔒 @cache.secure forces integrity_checking=True — passing integrity_checking=False raises ConfigurationError at decoration, including as an override next to config=DecoratorConfig.secure(...). @cache.secure also rejects config=; the RORO form is @cache(config=DecoratorConfig.secure(...)).

Default TTL follows the cross-SDK intent-preset spec (@cache.io 3600 s) — the same numbers as cachekit-rs and cachekit-ts. ttl= overrides it; ttl=None is the explicit never-expire opt-in (details).

Cross-process L1 eviction is not a preset feature: every preset's invalidate_cache() deletes from L1 and L2 alike, and evicting other processes' L1 copies is one process-wide opt-in, CACHEKIT_INVALIDATION_LISTENER_ENABLED (L1 invalidation).

L1 SWR (within-TTL background refresh) runs only in L1-only mode (backend=None) — with a backend configured it has no effect. @cache.io additionally ships past-TTL SWR via stale_ttl (docs).

@cache.io() mirrors @cache.production (full reliability + observability) but routes to the managed CachekitIO SaaS backend instead of Redis. @cache.local() is a separate in-process path backed by ObjectCache (raw object references, entry-count LRU, no serialization) — the reliability and encryption features listed above do not apply to it.

Additional Presets: @cache.dev and @cache.test

See the comparison table above for the exact feature set of each preset.

# Development: verbose logging, integrity checks on, Prometheus off except circuit_breaker_state
@cache.dev
def debug_expensive_call():
    return complex_computation()

# Testing: deterministic, all protections off (no circuit breaker, no backpressure)
@cache.test
def test_cached_function():
    return fixed_test_value()

Architecture

┌─────────────────────────────────────────────────────────────┐
│                        Application                          │
├─────────────────────────────────────────────────────────────┤
│                     @cache Decorator                        │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────────────┐  │
│  │   Circuit   │  │  Adaptive   │  │    Distributed      │  │
│  │   Breaker   │  │  Timeouts   │  │      Locking        │  │
│  └─────────────┘  └─────────────┘  └─────────────────────┘  │
├─────────────────────────────────────────────────────────────┤
│  L1 Cache (In-Memory)  │  L2 Cache (Pluggable Backend)     │
│       ~50ns            │  Redis / CachekitIO / File /      │
│                        │  Memcached    ~2-50ms             │
├─────────────────────────────────────────────────────────────┤
│                    Rust Core (PyO3)                         │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────────────┐  │
│  │    LZ4      │  │  xxHash3    │  │    AES-256-GCM      │  │
│  │ Compression │  │  Checksums  │  │    Encryption       │  │
│  └─────────────┘  └─────────────┘  └─────────────────────┘  │
└─────────────────────────────────────────────────────────────┘

Features

Production Hardened

  • Circuit breaker with graceful degradation
  • Connection pooling with thread affinity (+28% throughput)
  • CachekitIO keeps idle connections pooled until the server closes them, with TCP keepalive probes, so a request after a pause skips a new TLS handshake
  • Distributed locking prevents cache stampedes
  • Pluggable backend abstraction (Redis, CachekitIO, File, Memcached, custom)
  • Untrusted-decode bounds: nesting depth and header-declared allocation are capped on every cache read (a forged entry is a bounded cache miss), verified against the protocol's shared decode-bounds.json vectors

Smart Serialization

Serializer Speed Use Case
StandardSerializer ★★★★☆ General Python types, NumPy, Pandas
OrjsonSerializer ★★★★★ JSON APIs (2-5x faster than stdlib) — requires cachekit[json]
ArrowSerializer ★★★★★ Large DataFrames (6-23x faster for 10K+ rows)
+ Encryption ★★★★☆ Any serializer above, AES-256-GCM encrypted: @cache.secure(master_key=..., serializer=...)
Serializer Examples
from cachekit.serializers import OrjsonSerializer, ArrowSerializer

# Fast JSON for API responses
@cache.production(serializer=OrjsonSerializer())
def get_api_response(endpoint: str):
    return {"status": "success", "data": fetch_api(endpoint)}

# Zero-copy DataFrames for large datasets
@cache(serializer=ArrowSerializer())
def get_large_dataset(date: str):
    return pd.read_csv(f"data/{date}.csv")

Encrypted DataFrames go through @cache.secure, which takes any serializer. A file backend keeps this example self-contained; production uses Redis or cachekit.io:

import tempfile
from cachekit.backends.file import FileBackend, FileBackendConfig
from cachekit.serializers import ArrowSerializer

calls = 0

@cache.secure(
    master_key=secret_key,
    serializer=ArrowSerializer(),
    backend=FileBackend(FileBackendConfig(cache_dir=tempfile.mkdtemp())),
)
def get_patient_data(hospital_id: int):
    global calls
    calls += 1
    return pd.DataFrame({"hospital_id": [hospital_id], "patients": [42]})

get_patient_data(7)
get_patient_data(7)  # second call is served from the encrypted cache
assert calls == 1

Integrity Checking

Performance Impact (benchmark-proven):

Data Type Latency Reduction (disabled) Size Overhead
MessagePack (default) 60-90% 8 bytes
Arrow DataFrames 35-49% 8 bytes
JSON (orjson) 37-68% 8 bytes

Security

Key rotation: keep a retiring key readable with CACHEKIT_PREVIOUS_MASTER_KEYS (comma-separated hex, max 3 decrypt-only keys) while new writes use CACHEKIT_MASTER_KEY. A one-deploy key swap is not zero-miss; follow the key rotation runbook, including its Before You Rotate checks. CK-framed entries are selected by exact key fingerprint — never trial decryption; Interop-mode entries carry no CK frame and attempt keyring keys sequentially instead.

cachekit employs comprehensive security tooling:

  • Dependency Security: cargo-deny for license compliance + cargo-audit for RustSec scanning
  • Formal Verification: Kani proves correctness of compression, checksums, encryption
  • Runtime Analysis: Miri + sanitizers for memory safety
  • Fuzzing: Coverage-guided testing with >80% code coverage
  • Zero CVEs: Continuous vulnerability scanning
Security Commands
make security-install  # Install security tools (one-time)
make security-fast     # Run fast checks (< 3 min)

Security Tiers:

Tier Time Coverage
Fast < 3 min Vulnerability scanning, license checks, linting
Medium < 15 min Unsafe code analysis, API stability, Miri subset
Deep < 2 hours Formal verification, extended fuzzing, full sanitizers

See SECURITY.md for vulnerability reporting and detailed documentation.

Monitoring & Observability

  • Per-function statistics - cache_info() on every decorated function, modelled on functools.lru_cache
  • Prometheus metrics - Recorded by default (your app owns exposition)
  • Structured logging - Context-aware, per-operation fields
  • Health checks - Comprehensive status endpoints

Every decorated function exposes cache_info(), returning a CacheInfo named tuple with hit/miss counts, the L1/L2 split, and average backend latency:

@cache()
def get_score(x):
    return x ** 2

get_score(2)
get_score(2)  # served from cache

info = get_score.cache_info()
# CacheInfo has 9 fields: hits, misses, l1_hits, l2_hits, maxsize,
# currsize, l2_avg_latency_ms, last_operation_at, session_id
assert info.l1_hits + info.l2_hits == info.hits  # every hit is L1 or L2

maxsize and currsize are always None (the cache lives in an external store, not a bounded in-process dict); they exist only for lru_cache API parity. See the API Reference for the full field reference and a sample stats endpoint, and the Prometheus Metrics guide for metric names and exposition setup.

Thread Safety Details

Free-threaded CPython (3.14t): the core suites run green on free-threaded 3.14 with the GIL verified disabled (CI job test-freethreaded), and the Rust extension declares free-threaded safety (gil_used = false). Free-threaded wheels are not yet published and free-threaded builds are not officially supported — blocked upstream on orjson (no free-threaded wheels) and hiredis (re-enables the GIL on import; cachekit loads redis-py only for its Redis backend, and keeps hiredis out there, so redis-py uses its pure-Python parser). See measured performance results and the full concurrency audit: docs/free-threading.md.

Per-Function Statistics:

  • Statistics tracked per function identity (module.qualname), shared across all calls and across re-decorations of the same function
  • Thread-safe via RLock (all methods safe for concurrent access)
  • Fork-safe: a forked child starts with zeroed counters and its own session ID
from concurrent.futures import ThreadPoolExecutor

@cache()
def expensive_func(x):
    return x ** 2

# All threads share same stats
with ThreadPoolExecutor(max_workers=10) as executor:
    results = list(executor.map(expensive_func, range(100)))

info = expensive_func.cache_info()
# CacheInfo(hits=..., misses=..., l1_hits=..., l2_hits=...,
#           maxsize=None, currsize=None, l2_avg_latency_ms=...,
#           last_operation_at=..., session_id=...)

Documentation

Start Here

Guide Description
Comparison Guide How cachekit compares to lru_cache, aiocache, cachetools
Getting Started Progressive tutorial from basics to advanced
API Reference Complete API documentation
Skyline (live example) Canonical example project: this SDK ingests the Bluesky firehose and writes the analytics entries a TypeScript edge Worker serves live, on one shared interop namespace

Feature Deep Dives

Feature Description
Serializer Guide ArrowSerializer vs StandardSerializer benchmarks
Circuit Breaker Prevent cascading failures
Distributed Locking Cache stampede prevention
Prometheus Metrics Built-in observability
Zero-Knowledge Encryption Client-side security
Interop Mode Cross-SDK cache sharing with cachekit-ts/rs
L1 Invalidation & SWR Invalidation scope (incl. cross-process whole-function on tenant-scoped Redis from the environment or RedisBackendProvider), opt-in cross-process L1 eviction, stale-while-revalidate
Reference Caching @cache.local() for non-serializable objects
Rust Serialization ByteStorage layer: LZ4, xxHash3, AES-256-GCM
SSRF Protection URL allowlisting for the CachekitIO backend

Configuration

Environment Variables

# Backend selection: set exactly ONE of CACHEKIT_REDIS_URL, CACHEKIT_API_KEY,
# CACHEKIT_MEMCACHED_SERVERS, CACHEKIT_FILE_CACHE_DIR. Two or more is a ConfigurationError at
# first call, and decorators relying on env auto-detection run uncached (docs/backends/README.md).
# REDIS_URL is only a fallback and never conflicts.

# Redis Connection (priority: CACHEKIT_REDIS_URL > REDIS_URL)
CACHEKIT_REDIS_URL="redis://localhost:6379"  # Primary (preferred)
REDIS_URL="redis://localhost:6379"           # Fallback

# CachekitIO SaaS Backend (closed beta — request access at cachekit.io)
# For @cache.io() next to Redis, pass api_key= from your secret store instead.
# CACHEKIT_API_KEY="your-api-key"  # pragma: allowlist secret
CACHEKIT_API_URL="https://api.cachekit.io"  # Default SaaS endpoint

# Memcached Backend (optional: pip install cachekit[memcached])
# CACHEKIT_MEMCACHED_SERVERS='["mc1:11211", "mc2:11211"]'  # Default: 127.0.0.1:11211
CACHEKIT_MEMCACHED_CONNECT_TIMEOUT=2.0                   # Default: 2.0 seconds
CACHEKIT_MEMCACHED_TIMEOUT=1.0                            # Default: 1.0 seconds
CACHEKIT_MEMCACHED_KEY_PREFIX="myapp:"                    # Default: "" (none)

# Optional Configuration
CACHEKIT_MAX_VALUE_SIZE=104857600
CACHEKIT_ARROW_COMPRESSION=zstd

Development

git clone https://github.com/cachekit-io/cachekit-py.git
cd cachekit-py
uv sync && make install
make quick-check  # format + lint + critical tests

See CONTRIBUTING.md for full development guidelines.


Requirements

Component Version
Python 3.10+

License

MIT License - see LICENSE for details.


Metadata

Release files for cachekit 0.22.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cachekit 0.22.0
File Size Uploaded
cachekit-0.22.0.tar.gz 389.4 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for cachekit 0.22.0
File
cachekit-0.22.0-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
cachekit-0.22.0-cp314-cp314-manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ ARM64 Details
cachekit-0.22.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ x86-64 Details
cachekit-0.22.0-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
cachekit-0.22.0-cp314-cp314-macosx_10_12_x86_64.whl CPython 3.14 CPython 3.14 macOS 10.12+ x86-64 Details
cachekit-0.22.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
cachekit-0.22.0-cp313-cp313-manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ ARM64 Details
cachekit-0.22.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64 Details
cachekit-0.22.0-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
cachekit-0.22.0-cp313-cp313-macosx_10_12_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.12+ x86-64 Details
cachekit-0.22.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
cachekit-0.22.0-cp312-cp312-manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ ARM64 Details
cachekit-0.22.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details
cachekit-0.22.0-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
cachekit-0.22.0-cp312-cp312-macosx_10_12_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.12+ x86-64 Details
cachekit-0.22.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
cachekit-0.22.0-cp311-cp311-manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ ARM64 Details
cachekit-0.22.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
cachekit-0.22.0-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
cachekit-0.22.0-cp311-cp311-macosx_10_12_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.12+ x86-64 Details
cachekit-0.22.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
cachekit-0.22.0-cp310-cp310-manylinux_2_28_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ ARM64 Details
cachekit-0.22.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details
cachekit-0.22.0-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
cachekit-0.22.0-cp310-cp310-macosx_10_12_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.12+ x86-64 Details

Total release size: 17.1 MB

Release files / cachekit-0.22.0.tar.gz

Download URL cachekit-0.22.0.tar.gz
Size 389.4 kB
Tags Source
SHA-256 checksum
How to use checksums
59f5d6a16548b3fc0b39fbd50547d10b8aec8f836b7c2c2f84efbf50be0503d4
BLAKE2b-256 checksum
How to use checksums
a743207b2fcfa43f71d374847496656ac022418933a08f25461f10da016152f4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.

Transparency log

Release files / cachekit-0.22.0-cp314-cp314-win_amd64.whl

Download URL cachekit-0.22.0-cp314-cp314-win_amd64.whl
Size 610.1 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
093fce357e107bd8f42eceba9eed178afae9ebe2be1f7e97d86d4dac4c70bff5
BLAKE2b-256 checksum
How to use checksums
607960dd6872d09b9cf2ceec0cf11b4161b133626650742f101eb4ed637a2ed3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.

Transparency log

Release files / cachekit-0.22.0-cp314-cp314-manylinux_2_28_aarch64.whl

Download URL cachekit-0.22.0-cp314-cp314-manylinux_2_28_aarch64.whl
Size 682.1 kB
Tags CPython 3.14 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
105c10926f37cdaa9f195a933d2bb28816517085225dbfc1bed75a477c5cc830
BLAKE2b-256 checksum
How to use checksums
4e7ca7b173214a321080b94d16914b337f7fb8a06088b2efc43fcaa28b376987
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.

Transparency log

Release files / cachekit-0.22.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL cachekit-0.22.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 702.4 kB
Tags CPython 3.14 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
a008cfa63ff1ae3788862a50d6b761c6044bd52b2bfe8bbbc1a037e350587120
BLAKE2b-256 checksum
How to use checksums
1379a21a2b5460cd55afa38601bc0b0e9d651631e3bf359117887c46ee07c0b6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.

Transparency log

Release files / cachekit-0.22.0-cp314-cp314-macosx_11_0_arm64.whl

Download URL cachekit-0.22.0-cp314-cp314-macosx_11_0_arm64.whl
Size 661.7 kB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
537dc4173b3ae22b09f43550b8fbc43ccd7dfe39b1e7128d01c65163c8373133
BLAKE2b-256 checksum
How to use checksums
20bb5decdbe2ec9ed753ce35a1a48ef3a016656e51068179c7a3d5f9921dac9e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.

Transparency log

Release files / cachekit-0.22.0-cp314-cp314-macosx_10_12_x86_64.whl

Download URL cachekit-0.22.0-cp314-cp314-macosx_10_12_x86_64.whl
Size 686.2 kB
Tags CPython 3.14 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
92e2672eb19fe24713e6a165be66d17dde16dea93cb44ecedc94cd14fa9326f5
BLAKE2b-256 checksum
How to use checksums
3e11c309b6dffca58a849c9e0de395b79c7e82772e8a8367d2330922f51f3b8d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.

Transparency log

Release files / cachekit-0.22.0-cp313-cp313-win_amd64.whl

Download URL cachekit-0.22.0-cp313-cp313-win_amd64.whl
Size 613.7 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
21b4a051d50dbb8135f3463fdf26c6e7d3eca8db586272326e7676832e7f7644
BLAKE2b-256 checksum
How to use checksums
4198953ed5aa38a640d7e62c1363ec66a6af9fc9f29a0757eaba4d86d0fed5bd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.

Transparency log

Release files / cachekit-0.22.0-cp313-cp313-manylinux_2_28_aarch64.whl

Download URL cachekit-0.22.0-cp313-cp313-manylinux_2_28_aarch64.whl
Size 683.7 kB
Tags CPython 3.13 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
58ef6f3b31cd30ecc581abd1e2f7dfb7e03fbba4c848f29e134e90051ba47003
BLAKE2b-256 checksum
How to use checksums
6be610efd23b4a015653131413b5f30dd4dae869806b29188d393c2f1deba955
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.

Transparency log

Release files / cachekit-0.22.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL cachekit-0.22.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 704.8 kB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
35dab4bfb9a246c2d4df66c850da41259d78cf086b600dbb48d4dc277bb831b9
BLAKE2b-256 checksum
How to use checksums
b42e6c3ff7da42ac1d49f6c761909875a67cb8a4f524162d11470c14fda45ecf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.

Transparency log

Release files / cachekit-0.22.0-cp313-cp313-macosx_11_0_arm64.whl

Download URL cachekit-0.22.0-cp313-cp313-macosx_11_0_arm64.whl
Size 661.7 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
f2c6a1c04e27429bc6cc807aa95c7c3ccfdc46fb130f10b72dfa127216d1c5dd
BLAKE2b-256 checksum
How to use checksums
1622d6261c93d91f6143de3ed6089902f52db9c7f03a1d6bd08fd9da8590109f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.

Transparency log

Release files / cachekit-0.22.0-cp313-cp313-macosx_10_12_x86_64.whl

Download URL cachekit-0.22.0-cp313-cp313-macosx_10_12_x86_64.whl
Size 686.3 kB
Tags CPython 3.13 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
4da9886ad3fea256a92f7592726336f0f69e8a9fb5c7adbb787029e62afdf9bc
BLAKE2b-256 checksum
How to use checksums
080893dc293b267b0e7a6af6907fdde1c3bc9e19334d5db312b0694da787bde1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.

Transparency log

Release files / cachekit-0.22.0-cp312-cp312-win_amd64.whl

Download URL cachekit-0.22.0-cp312-cp312-win_amd64.whl
Size 613.1 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
b9c16d2382136bc2ec95beee7c7ff6a1299c37d9de02433973c3f9851eb0ffdb
BLAKE2b-256 checksum
How to use checksums
410437adaa33e3d73acc4b908b0900b169a8937a3aaa3f9d0ae41f7baef12ffe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.

Transparency log

Release files / cachekit-0.22.0-cp312-cp312-manylinux_2_28_aarch64.whl

Download URL cachekit-0.22.0-cp312-cp312-manylinux_2_28_aarch64.whl
Size 683.4 kB
Tags CPython 3.12 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
97086f7d4e4718864704d8438609dcec95aed0d37a0361b6393c764f32f10377
BLAKE2b-256 checksum
How to use checksums
85a5d90fc4eefa63bab60cf74ad99ffaaebfc320bf04ad504753cbc1f91ace8d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.

Transparency log

Release files / cachekit-0.22.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL cachekit-0.22.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 704.3 kB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
2e767c7e09236d82e459a6d8de1a5e6a407631dfc20d09bf56231deb3ab7e67f
BLAKE2b-256 checksum
How to use checksums
80c77cf9aacb720cc8bca5949155854fb6fa2c72040c6ce8f2825668cc14a103
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.

Transparency log

Release files / cachekit-0.22.0-cp312-cp312-macosx_11_0_arm64.whl

Download URL cachekit-0.22.0-cp312-cp312-macosx_11_0_arm64.whl
Size 661.0 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
525114b37222d671932869f158c818d1cfdf985a99c2eb5353a8c4170d1be0f3
BLAKE2b-256 checksum
How to use checksums
c280a807ad169e9ec0ba5411fc19b1101d2ad3869884352514b5b6373ef2f63e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.

Transparency log

Release files / cachekit-0.22.0-cp312-cp312-macosx_10_12_x86_64.whl

Download URL cachekit-0.22.0-cp312-cp312-macosx_10_12_x86_64.whl
Size 685.8 kB
Tags CPython 3.12 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
f9a6a40b73c993af02f67a20d0c9fe3993f65d4e535fa2cee775cbf248e5675e
BLAKE2b-256 checksum
How to use checksums
afab917681ae8b2cd71eef215260936ac5dc0ec5749746791c5b1b96a4eadea1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.

Transparency log

Release files / cachekit-0.22.0-cp311-cp311-win_amd64.whl

Download URL cachekit-0.22.0-cp311-cp311-win_amd64.whl
Size 611.4 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
f4bf916026103f7e8b5ac1baa2e94c74eda0602a62151cc7c658820fcaf0c039
BLAKE2b-256 checksum
How to use checksums
79a1f1ddd2d32a63dc3774391d978c4fefa2197825e9b78bffae62b32115d57b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.

Transparency log

Release files / cachekit-0.22.0-cp311-cp311-manylinux_2_28_aarch64.whl

Download URL cachekit-0.22.0-cp311-cp311-manylinux_2_28_aarch64.whl
Size 682.2 kB
Tags CPython 3.11 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
7efff15806cf7b1bbe4a4d7dded7b83ee3441ac5bfa50ae013f3ffe249deea0f
BLAKE2b-256 checksum
How to use checksums
f21216da03c29a10f9693697fd8a1a7fa9a9ac3e138ce095cc3ddbdff01b4344
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.

Transparency log

Release files / cachekit-0.22.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL cachekit-0.22.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 702.3 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
c0ddfa77d9d2edc04275b673b912b9582012dab6485d6b1d0d4898d512c980eb
BLAKE2b-256 checksum
How to use checksums
1cdddd80365bd91043ca13f1c7faea24a904708067bb47dd6bd18e61db1147af
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.

Transparency log

Release files / cachekit-0.22.0-cp311-cp311-macosx_11_0_arm64.whl

Download URL cachekit-0.22.0-cp311-cp311-macosx_11_0_arm64.whl
Size 663.8 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
f8fbef5c11df54a22c7c2a50cd701f4282a493d76cf9865b239fb4e4a4b67674
BLAKE2b-256 checksum
How to use checksums
06442aa33f23d49253f3da52e62f19d218ab815c2c679891c48d34962bc68bd5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.

Transparency log

Release files / cachekit-0.22.0-cp311-cp311-macosx_10_12_x86_64.whl

Download URL cachekit-0.22.0-cp311-cp311-macosx_10_12_x86_64.whl
Size 685.9 kB
Tags CPython 3.11 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
d9a191b5382bbd4dce8be9d6d51c6a5cd405a35c430b96d9567f5cdbe4f948ad
BLAKE2b-256 checksum
How to use checksums
4213023082eb5da7facdd3f8d6909e43ec52c5afa5f81c78da08dbfbfd706dec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.

Transparency log

Release files / cachekit-0.22.0-cp310-cp310-win_amd64.whl

Download URL cachekit-0.22.0-cp310-cp310-win_amd64.whl
Size 611.5 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
3c83afef6de7ef9084c5d9f6095121c9a4e0667357094465273df246332e0335
BLAKE2b-256 checksum
How to use checksums
f5ac65d141702cb7c95c793b79d1bcce476467a0d4b5719f665f9d2f2735f0eb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.

Transparency log

Release files / cachekit-0.22.0-cp310-cp310-manylinux_2_28_aarch64.whl

Download URL cachekit-0.22.0-cp310-cp310-manylinux_2_28_aarch64.whl
Size 682.7 kB
Tags CPython 3.10 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
451833964573665adf1795c124ab906f59ccf89c19c7c2f3bf4f5e43d14279d9
BLAKE2b-256 checksum
How to use checksums
97cb91c6b519a164e878dfc4dbbf3f0b86ea84fbf186c1a8a08d3235178b52f7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.

Transparency log

Release files / cachekit-0.22.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL cachekit-0.22.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 702.6 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
a987f6d6d1aa35395579f1e37f72bdf9041a1b379f7ab63a1fec6cec2b81f656
BLAKE2b-256 checksum
How to use checksums
74074fc49e166235ebceee0981854fa92b3604995bc7b1a43dcc1af60bf58e54
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.

Transparency log

Release files / cachekit-0.22.0-cp310-cp310-macosx_11_0_arm64.whl

Download URL cachekit-0.22.0-cp310-cp310-macosx_11_0_arm64.whl
Size 664.0 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
61236f034f409aaa139f204daaf194fae19a7fc4a74b99793fcf7eea5daea88b
BLAKE2b-256 checksum
How to use checksums
1b2345d3147a9e786f34d4f749b35d13d455e8f066d9c008a0652431d4d44e1e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.

Transparency log

Release files / cachekit-0.22.0-cp310-cp310-macosx_10_12_x86_64.whl

Download URL cachekit-0.22.0-cp310-cp310-macosx_10_12_x86_64.whl
Size 686.1 kB
Tags CPython 3.10 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
ad64c295add79a07f14b726a5c74addbf2bff746bed0fa09f1fbb9c156f8abe0
BLAKE2b-256 checksum
How to use checksums
ec776739ea4c9eed8728221948b4915eafdd4c39619d1332d36bf9d1fa6cec06
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 4, 2026.

Transparency log
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page