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)
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.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).

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
@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.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)
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 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). 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)

Source distribution for cachekit 0.20.0
File Size Uploaded
cachekit-0.20.0.tar.gz 336.1 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for cachekit 0.20.0
File
cachekit-0.20.0-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
cachekit-0.20.0-cp314-cp314-manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ ARM64 Details
cachekit-0.20.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.20.0-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
cachekit-0.20.0-cp314-cp314-macosx_10_12_x86_64.whl CPython 3.14 CPython 3.14 macOS 10.12+ x86-64 Details
cachekit-0.20.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
cachekit-0.20.0-cp313-cp313-manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ ARM64 Details
cachekit-0.20.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.20.0-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
cachekit-0.20.0-cp313-cp313-macosx_10_12_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.12+ x86-64 Details
cachekit-0.20.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
cachekit-0.20.0-cp312-cp312-manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ ARM64 Details
cachekit-0.20.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.20.0-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
cachekit-0.20.0-cp312-cp312-macosx_10_12_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.12+ x86-64 Details
cachekit-0.20.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
cachekit-0.20.0-cp311-cp311-manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ ARM64 Details
cachekit-0.20.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.20.0-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
cachekit-0.20.0-cp311-cp311-macosx_10_12_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.12+ x86-64 Details
cachekit-0.20.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
cachekit-0.20.0-cp310-cp310-manylinux_2_28_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ ARM64 Details
cachekit-0.20.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.20.0-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
cachekit-0.20.0-cp310-cp310-macosx_10_12_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.12+ x86-64 Details

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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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
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