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.
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)
| 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) | - | ✅ | - | ✅ | - |
| L1 Invalidation | - | - | - | ✅ | ✅ |
| Prometheus Metrics | - | - | - | ✅ | ✅ |
| Tracing | - | ✅ | - | ✅ | ✅ |
| Structured Logging | - | ✅ | - | ✅ | ✅ |
| Use Case | High throughput | Local debugging | Deterministic tests | Production reliability | Compliance/security |
🔒
@cache.secureforcesintegrity_checking=True— passingintegrity_checking=FalseraisesConfigurationErrorat decoration, including as an override next toconfig=DecoratorConfig.secure(...).@cache.securealso rejectsconfig=; the RORO form is@cache(config=DecoratorConfig.secure(...)).Default TTL follows the cross-SDK intent-preset spec (
@cache.io3600 s) — the same numbers as cachekit-rs and cachekit-ts.ttl=overrides it;ttl=Noneis the explicit never-expire opt-in (details).L1 SWR (within-TTL background refresh) runs only in L1-only mode (
backend=None) — with a backend configured it has no effect.@cache.ioadditionally ships past-TTL SWR viastale_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 byObjectCache(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
@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)
- 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.jsonvectors
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) |
| EncryptionWrapper | ★★★★☆ | Wraps any serializer with AES-256-GCM |
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 onfunctools.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). 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), 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
# 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)
CACHEKIT_API_KEY="your-api-key" # For @cache.io() — or pass api_key= directly # 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.20.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| cachekit-0.20.0.tar.gz | 336.1 kB | Details |
Built distributions (wheels)
Total release size: 15.8 MB
Release files / cachekit-0.20.0.tar.gz
| Download URL | cachekit-0.20.0.tar.gz |
|---|---|
| Size | 336.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
adf2d5ee7ab9dcd70d13a1127e179eed8c0c1f523fb12c5b11bba2361f1afa9c
|
|
BLAKE2b-256 checksum How to use checksums |
ecbbba39232db67a0eeb318b3d2e5152f1c565cea59a24e03ffcb1fa2fbe3bc2
|
| 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 Sep 30, 2026.
Transparency logRelease files / cachekit-0.20.0-cp314-cp314-win_amd64.whl
| Download URL | cachekit-0.20.0-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 556.8 kB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
fe37e597c1b5108e1437e4da159746108172b7df89ee0a470b8de22147e90866
|
|
BLAKE2b-256 checksum How to use checksums |
14c7330b01f402a36b8bf77578bcad14e195c853880c118ab1314d940f31e5f6
|
| 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 Sep 30, 2026.
Transparency logRelease files / cachekit-0.20.0-cp314-cp314-manylinux_2_28_aarch64.whl
| Download URL | cachekit-0.20.0-cp314-cp314-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 632.2 kB |
| Tags | CPython 3.14 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
168d29363447c34f7a3b1f57eda5e73b734f750637caf3118ec75aa45a63f8e8
|
|
BLAKE2b-256 checksum How to use checksums |
aad1e7a459783a6556bfb8011b79274fecca9c7f58422496890f8b628a61ba13
|
| 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 Sep 30, 2026.
Transparency logRelease files / cachekit-0.20.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | cachekit-0.20.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 654.1 kB |
| Tags | CPython 3.14 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
f99e788e2b049dfbe81f7ff02a6fd0a5f21a98923150b1c688a194ff5564237f
|
|
BLAKE2b-256 checksum How to use checksums |
dd9cedf70cab6b8523f64c0b10c3be7aad4b485de627ef1474f5ae843e882ae7
|
| 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 Sep 30, 2026.
Transparency logRelease files / cachekit-0.20.0-cp314-cp314-macosx_11_0_arm64.whl
| Download URL | cachekit-0.20.0-cp314-cp314-macosx_11_0_arm64.whl |
|---|---|
| Size | 608.5 kB |
| Tags | CPython 3.14 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
bf5b87ca67e4a9932f2180bb2f23e55b67e8835d61908569f527f54b8a4582ed
|
|
BLAKE2b-256 checksum How to use checksums |
3ea38da33b26e15e96ae312f8ae89322fde1a5d56bbe579580411b7fe404e3e2
|
| 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 Sep 30, 2026.
Transparency logRelease files / cachekit-0.20.0-cp314-cp314-macosx_10_12_x86_64.whl
| Download URL | cachekit-0.20.0-cp314-cp314-macosx_10_12_x86_64.whl |
|---|---|
| Size | 634.6 kB |
| Tags | CPython 3.14 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
60f06e99366b2ba6fc4846678d748884a0160bbfa6e636d91bd6bbd6c9e55025
|
|
BLAKE2b-256 checksum How to use checksums |
f6bd61388ff89c13b075ba567fb9a715f11bc69e2b6fe94d10f979dbdc4b3e7b
|
| 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 Sep 30, 2026.
Transparency logRelease files / cachekit-0.20.0-cp313-cp313-win_amd64.whl
| Download URL | cachekit-0.20.0-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 560.9 kB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
8ec9996356b8982477dbfba24de6c2d37bea44df6f7b8b3f0a375bfe0507ce97
|
|
BLAKE2b-256 checksum How to use checksums |
f771695eecc6a2182926a0dc82aa4ae5eb531176a2afe4f0998db808ff1af67a
|
| 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 Sep 30, 2026.
Transparency logRelease files / cachekit-0.20.0-cp313-cp313-manylinux_2_28_aarch64.whl
| Download URL | cachekit-0.20.0-cp313-cp313-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 633.4 kB |
| Tags | CPython 3.13 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
de725b837346605d0649de22f09748fa9e630fa5a8fcb99a8130687c65dd0e02
|
|
BLAKE2b-256 checksum How to use checksums |
90d4e3ccf08abf9264dd44ff3245beb1891208d9ed9f70757800336a3168bc75
|
| 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 Sep 30, 2026.
Transparency logRelease files / cachekit-0.20.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | cachekit-0.20.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 656.5 kB |
| Tags | CPython 3.13 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
fd51814dc1c080b435ff4b44fccfe72f6cec7753add4609e866b18534beb984c
|
|
BLAKE2b-256 checksum How to use checksums |
3004ea1bde5d089d1659f4d909196c9fb095d96ac970562464531f98ea45abcb
|
| 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 Sep 30, 2026.
Transparency logRelease files / cachekit-0.20.0-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | cachekit-0.20.0-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 608.5 kB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
be639dbda49334e8d94be1dd4c16f6ac83ab7dd2401f9d8a98ad293f8b0da0ef
|
|
BLAKE2b-256 checksum How to use checksums |
e66af4ec716d2f061b84dff70c885118ca41dddcb9d770877a270589f9a2ff7e
|
| 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 Sep 30, 2026.
Transparency logRelease files / cachekit-0.20.0-cp313-cp313-macosx_10_12_x86_64.whl
| Download URL | cachekit-0.20.0-cp313-cp313-macosx_10_12_x86_64.whl |
|---|---|
| Size | 634.7 kB |
| Tags | CPython 3.13 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
1b54c331660ca92fcf3ad8cdd36ca3555da9810ca8c20746265ea7c65d863b43
|
|
BLAKE2b-256 checksum How to use checksums |
3ef249ce696b641d24c8aa4e423da346526299099a37ea06f7826f252cd0cf23
|
| 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 Sep 30, 2026.
Transparency logRelease files / cachekit-0.20.0-cp312-cp312-win_amd64.whl
| Download URL | cachekit-0.20.0-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 560.2 kB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
70a313a6b56a1502fa09a912d74ae14b96eed9228656f6395b599d380b0b514a
|
|
BLAKE2b-256 checksum How to use checksums |
4c166df013225313217d2eeb39c70fa6e5b89a2b8f81256156856fd26a950872
|
| 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 Sep 30, 2026.
Transparency logRelease files / cachekit-0.20.0-cp312-cp312-manylinux_2_28_aarch64.whl
| Download URL | cachekit-0.20.0-cp312-cp312-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 632.7 kB |
| Tags | CPython 3.12 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
3546e74cff67812ce0365a83a41ee54e79b21279e1953e1335c14545b0a832e6
|
|
BLAKE2b-256 checksum How to use checksums |
bbae48a1f33d42da051c31b4d1b23783e1a97727351adf2d68f180bc402432a3
|
| 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 Sep 30, 2026.
Transparency logRelease files / cachekit-0.20.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | cachekit-0.20.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 656.0 kB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
13758e9a95a42380b4aaff8a7f35936619b2ddc2435b016ed22714c7698ffc1f
|
|
BLAKE2b-256 checksum How to use checksums |
50e6b9de22c0f632f59784ad55d35d6c154bfdb405e74be1504c1af8c6489708
|
| 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 Sep 30, 2026.
Transparency logRelease files / cachekit-0.20.0-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | cachekit-0.20.0-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 607.7 kB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
364df0471f25cf1e823c124d60146686347b89d5288a21a20caf58d232bfb852
|
|
BLAKE2b-256 checksum How to use checksums |
e7860a04a7f4c7ff2a25a214a9340cf36a01d1a465175a986c9cff1585cf7511
|
| 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 Sep 30, 2026.
Transparency logRelease files / cachekit-0.20.0-cp312-cp312-macosx_10_12_x86_64.whl
| Download URL | cachekit-0.20.0-cp312-cp312-macosx_10_12_x86_64.whl |
|---|---|
| Size | 634.1 kB |
| Tags | CPython 3.12 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
682d1b076b6a7493a79de28d3966d67af557500e857f4263d549f3cfd2dd6746
|
|
BLAKE2b-256 checksum How to use checksums |
a663008cb91ae072823477d6f7e30b2e75bdf31e306df0e0975bc25570f0fcb8
|
| 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 Sep 30, 2026.
Transparency logRelease files / cachekit-0.20.0-cp311-cp311-win_amd64.whl
| Download URL | cachekit-0.20.0-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 558.0 kB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
74555fae0ffaf9968c7b41480fca5482b614c3aa62329fe6d13ceffe72caeeae
|
|
BLAKE2b-256 checksum How to use checksums |
6ce8d0faaa64aa9acf5a02a0f36a03bb5b2e112b6996b17b8b7ee6236d4ff474
|
| 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 Sep 30, 2026.
Transparency logRelease files / cachekit-0.20.0-cp311-cp311-manylinux_2_28_aarch64.whl
| Download URL | cachekit-0.20.0-cp311-cp311-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 631.6 kB |
| Tags | CPython 3.11 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
7e5cf0cf4e417fe47273f9e4d3d8e9d41337a2ef8585302df8924657e93980b5
|
|
BLAKE2b-256 checksum How to use checksums |
fd32ff9aca28065a497f792a84feb3af0f9625ed002c1e27e30d80bf03800c45
|
| 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 Sep 30, 2026.
Transparency logRelease files / cachekit-0.20.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | cachekit-0.20.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 653.5 kB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
d74a5a569cf0ae401d86f1f3a192012cc04962b989a6977543e7d366a9cfda96
|
|
BLAKE2b-256 checksum How to use checksums |
d0bd333f1e5d4984fad00c1fef3fbf82308264ff8b6b13b19ede16b41c5d66c0
|
| 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 Sep 30, 2026.
Transparency logRelease files / cachekit-0.20.0-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | cachekit-0.20.0-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 610.6 kB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
bd7a1f462b208a27da217b8c2aa8206f8ad44f16edfda433e607e57335c7e176
|
|
BLAKE2b-256 checksum How to use checksums |
9a50a3034421fe04c9422637f848248c400a3bda46866c9ed40abe70bbc4597b
|
| 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 Sep 30, 2026.
Transparency logRelease files / cachekit-0.20.0-cp311-cp311-macosx_10_12_x86_64.whl
| Download URL | cachekit-0.20.0-cp311-cp311-macosx_10_12_x86_64.whl |
|---|---|
| Size | 633.9 kB |
| Tags | CPython 3.11 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
fc8eb163612b3b23325c6a19ded4e1e008c5d053beff6829ed521967c5a509a1
|
|
BLAKE2b-256 checksum How to use checksums |
fd95f7239f5a93f5f85c19c1839fb2002e9cb35da85e7fb48b746aa3666252eb
|
| 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 Sep 30, 2026.
Transparency logRelease files / cachekit-0.20.0-cp310-cp310-win_amd64.whl
| Download URL | cachekit-0.20.0-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 558.3 kB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
985aaa78292b4d134168454ca1f2c2d82e123f8beec7c68b7c3a8cfb0a201d85
|
|
BLAKE2b-256 checksum How to use checksums |
eb3bc5f2beffed1f3d1b75f93bbd09229c8c4dfeaa41384277a4129ed6c3af36
|
| 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 Sep 30, 2026.
Transparency logRelease files / cachekit-0.20.0-cp310-cp310-manylinux_2_28_aarch64.whl
| Download URL | cachekit-0.20.0-cp310-cp310-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 631.9 kB |
| Tags | CPython 3.10 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
dc45ff1540dcb671a984f60775b16535635e23f0c6f4e7c73f74c4c028f6db16
|
|
BLAKE2b-256 checksum How to use checksums |
23e65f944339388a0f6e2467c823d23024bdd06259706f1e466cce7943be39f5
|
| 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 Sep 30, 2026.
Transparency logRelease files / cachekit-0.20.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | cachekit-0.20.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 653.8 kB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
cd3714d0d52fdd75cda09b0f1be222f078bbd2a766dfb2f73e894fe5a419135d
|
|
BLAKE2b-256 checksum How to use checksums |
788226d4a685f66df04b30d917ea7d292c193c3cb7052c5d2bab7ffbbcf02ac4
|
| 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 Sep 30, 2026.
Transparency logRelease files / cachekit-0.20.0-cp310-cp310-macosx_11_0_arm64.whl
| Download URL | cachekit-0.20.0-cp310-cp310-macosx_11_0_arm64.whl |
|---|---|
| Size | 610.9 kB |
| Tags | CPython 3.10 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
ba6158759be88851c8582a91fcd78f229a44060abebaf6af2c0ad0fbd363b636
|
|
BLAKE2b-256 checksum How to use checksums |
c0e8ba5b021889bfa5002e6ea2397f62d137d7f2a5b47554361779cf4d67de63
|
| 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 Sep 30, 2026.
Transparency logRelease files / cachekit-0.20.0-cp310-cp310-macosx_10_12_x86_64.whl
| Download URL | cachekit-0.20.0-cp310-cp310-macosx_10_12_x86_64.whl |
|---|---|
| Size | 634.2 kB |
| Tags | CPython 3.10 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
becd78edfbd9184f9037dd9e72efef6fcac556d0c8ae7a90f944959cdc10b487
|
|
BLAKE2b-256 checksum How to use checksums |
a040b2a5fe7facfb20981e47d9bedab840da7471baa603cce83831907f9b55eb
|
| 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 Sep 30, 2026.
Transparency log