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
@cache.secure
def get_user_profile(user_id: int):
    return db.fetch_user(user_id)
Feature @cache.minimal @cache.dev @cache.test @cache.production @cache.secure
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 — it cannot be overridden.

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, EncryptionWrapper

# 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 for sensitive data
@cache(serializer=EncryptionWrapper(serializer=ArrowSerializer()))
def get_patient_data(hospital_id: int):
    return pd.read_sql("SELECT * FROM patients WHERE hospital_id = ?", conn, params=[hospital_id])

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

Zero-downtime key rotation: promote a new CACHEKIT_MASTER_KEY and keep the retiring key readable via CACHEKIT_PREVIOUS_MASTER_KEYS (comma-separated hex, max 3 decrypt-only keys). Entries are selected by exact key fingerprint — never trial decryption — and old entries age out via TTL, no cache flush required. See Zero-Knowledge Encryption.

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 with correlation IDs
  • 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 on upstream wheels (orjson, hiredis; numpy/pandas/pyarrow for [data]). 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 Process-local invalidation, 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"             # Required for @cache.io()  # 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_DEFAULT_TTL=3600
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.19.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.19.0
File Size Uploaded
cachekit-0.19.0.tar.gz 298.7 kB Details

Built distributions (wheels)

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

Total release size: 11.9 MB

Release files / cachekit-0.19.0.tar.gz

Download URL cachekit-0.19.0.tar.gz
Size 298.7 kB
Tags Source
SHA-256 checksum
How to use checksums
6d7e2f59517556f01344e32fff2492d85a1da2eaed6a0c41b8771dfb183d66eb
BLAKE2b-256 checksum
How to use checksums
c0fbfc63b3d06598f9d68571fc1d6ebaf2e183fa7f859bd8a4877eea2a48bc58
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 22, 2026.

Transparency log

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

Download URL cachekit-0.19.0-cp313-cp313-win_amd64.whl
Size 523.7 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
e321c9162ef843a34ff2fb7351e0816aa356d43e0a440c5218dc3dba869d7902
BLAKE2b-256 checksum
How to use checksums
c04cdff6deb087fc42677ef10175a5361b530d43799379bddabc0468b7320ce3
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 22, 2026.

Transparency log

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

Download URL cachekit-0.19.0-cp313-cp313-manylinux_2_28_aarch64.whl
Size 596.3 kB
Tags CPython 3.13 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
a0d465e98ba34030ee379d9daa19ac240ec3ea2488604918b3245f2ec4841389
BLAKE2b-256 checksum
How to use checksums
534866da66d25716cd4a6c7533414992f7cf8323b9a914e6f67c6367aaf6e935
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 22, 2026.

Transparency log

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

Download URL cachekit-0.19.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 619.5 kB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
db5b28a2ed6c5f1ba7483e4da3e38aaffacbddc9afc30362901a07d813269e72
BLAKE2b-256 checksum
How to use checksums
5a085025f82e3520c9e0a960a9b86e4ba74b157d1ece6675c387e218b80c1bac
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 22, 2026.

Transparency log

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

Download URL cachekit-0.19.0-cp313-cp313-macosx_11_0_arm64.whl
Size 571.4 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
c9cf50eb6bd4807b8c8c8b56b76e553cf34dcbb4bd00a26210c5dc422ab7de0c
BLAKE2b-256 checksum
How to use checksums
23c9f70efcdff93f2d05c3f0cbfeb94b75998b39eff49c837a17e62d1032324d
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 22, 2026.

Transparency log

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

Download URL cachekit-0.19.0-cp313-cp313-macosx_10_12_x86_64.whl
Size 597.6 kB
Tags CPython 3.13 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
60b499b5c937cd03a7b96d85c96ee07efb620ca8b07975dd4800fd1ad0fc473b
BLAKE2b-256 checksum
How to use checksums
bd8695c8ae8f30ffdc5a5487e217e1c60cc953727f3dfc5db894580db18cc4b7
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 22, 2026.

Transparency log

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

Download URL cachekit-0.19.0-cp312-cp312-win_amd64.whl
Size 523.0 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
51361321b3759f8c6f965e60c7c7bb976dfc3fd7caeb9b651e6df4643a0ab10f
BLAKE2b-256 checksum
How to use checksums
ba0305a961296caaf9a4c1072e3d50661b5df8f8570e1a7fe8608c6a1a381982
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 22, 2026.

Transparency log

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

Download URL cachekit-0.19.0-cp312-cp312-manylinux_2_28_aarch64.whl
Size 595.6 kB
Tags CPython 3.12 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
78aa53fcb3dc61d8d2efa833cfd99ea1ceb406ef6ba3f40f42f10e8f89367725
BLAKE2b-256 checksum
How to use checksums
783d49c8566b035677d4d23ecf6c2e5ec98234ce40b8789c723a96c2e743d0b6
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 22, 2026.

Transparency log

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

Download URL cachekit-0.19.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 618.8 kB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
51dde99df93ad13a90b79a78459024abf3155690071c674656669073fb43f983
BLAKE2b-256 checksum
How to use checksums
c888694064ace662217a269c60df528994134457058c0010a5736ef795437599
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 22, 2026.

Transparency log

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

Download URL cachekit-0.19.0-cp312-cp312-macosx_11_0_arm64.whl
Size 570.6 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
1d0730c3ff60213b34013265dd5e878c5b038a0b53ff2ed9044aeb8d08c8b55c
BLAKE2b-256 checksum
How to use checksums
468c67cd3e487dc71b7240bec97a421f5511fa261aaae4c79d3a0213957be94a
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 22, 2026.

Transparency log

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

Download URL cachekit-0.19.0-cp312-cp312-macosx_10_12_x86_64.whl
Size 597.0 kB
Tags CPython 3.12 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
68639a468d6e9fed04e303746914f42303f2e26ea3242206d687f22c9220116c
BLAKE2b-256 checksum
How to use checksums
2779ec963a7ac880a0c01232adf4c232f2dfd4f2a337c4e2e104606b5ff7cb2b
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 22, 2026.

Transparency log

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

Download URL cachekit-0.19.0-cp311-cp311-win_amd64.whl
Size 520.7 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
bfd0baa560e22a81d0bf1581d0e97a4f52be9793e617ae85b838b53cba5de880
BLAKE2b-256 checksum
How to use checksums
2617d4a5be15a866540f651ece6aad05837397109db4c27d8a3ecf4b2c33adaf
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 22, 2026.

Transparency log

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

Download URL cachekit-0.19.0-cp311-cp311-manylinux_2_28_aarch64.whl
Size 594.6 kB
Tags CPython 3.11 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
ae4e759116fe1330877a8b3c6e5f39b7c565a90b009d9d8b2668afcaf28251d3
BLAKE2b-256 checksum
How to use checksums
ce6a50cf11d0b0fbce59b19545ac3467552cec1123f1288cceb638dcaca83b4f
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 22, 2026.

Transparency log

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

Download URL cachekit-0.19.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 616.5 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
8fe4037534a1d043d1f4c460100032044d05edfbc79ad9cd187c2fee5db4b287
BLAKE2b-256 checksum
How to use checksums
0513f9b961b9f31b7bffdd4884d78bc6d7e2a6ce0e1e4fd23d09f798c0c290f6
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 22, 2026.

Transparency log

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

Download URL cachekit-0.19.0-cp311-cp311-macosx_11_0_arm64.whl
Size 573.7 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
a8babb7e9a2b9d71d58b7569684e86758e899742b0863ddd3979548bdb2e686a
BLAKE2b-256 checksum
How to use checksums
bfa733f77588a7d03ba46e6e082193b0c4305a4d8c4372981a9319a11c08ce39
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 22, 2026.

Transparency log

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

Download URL cachekit-0.19.0-cp311-cp311-macosx_10_12_x86_64.whl
Size 596.8 kB
Tags CPython 3.11 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
8bda668bcca4ca6faa15f90cf0e94b844742a2fd81ca59acf13638aeb4c61b0d
BLAKE2b-256 checksum
How to use checksums
9d371661c9989fbb726c548e374b4ada256bbb2230864e720ff87734351b9133
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 22, 2026.

Transparency log

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

Download URL cachekit-0.19.0-cp310-cp310-win_amd64.whl
Size 521.0 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
98449ca1418a7462defc180f0927fe46a89189a38f0783d2074f4562554592a1
BLAKE2b-256 checksum
How to use checksums
fa2aa4129a970af1d4d46924aa8bc1360e5b3ce6cd2a63269e0624b6be343586
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 22, 2026.

Transparency log

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

Download URL cachekit-0.19.0-cp310-cp310-manylinux_2_28_aarch64.whl
Size 595.0 kB
Tags CPython 3.10 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
41fdf98efcdc3d9a8f618a7ca04cec035efbd9f0b314631696f1cef5446886ea
BLAKE2b-256 checksum
How to use checksums
4a3c09ef9d6b20fdfaa22c7fe478e73ea43c7539b203b010b0d4ff0523304d02
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 22, 2026.

Transparency log

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

Download URL cachekit-0.19.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 616.8 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
2daba531c5b969e6578f214cf322dcc2bac400318379330d30f91f102d08f047
BLAKE2b-256 checksum
How to use checksums
e7f3a96780d16f6234da3977962f02aec18f8f6d5f8a7d107ca27f3578589e1c
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 22, 2026.

Transparency log

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

Download URL cachekit-0.19.0-cp310-cp310-macosx_11_0_arm64.whl
Size 573.9 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
1e05c600f98736f5c545b30e05781e6d68f7ab8484e49507228867faa93ef73e
BLAKE2b-256 checksum
How to use checksums
62a6cfa6ddb54842cd2fc50dce2868e231d423a92c6997be57ee8d419e5b5a38
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 22, 2026.

Transparency log

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

Download URL cachekit-0.19.0-cp310-cp310-macosx_10_12_x86_64.whl
Size 597.1 kB
Tags CPython 3.10 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
e665af6ec46cf1cb93e1141b8c881a0f4b5725dbf21b73d998a58984240f5063
BLAKE2b-256 checksum
How to use checksums
ee3aa750217e4227c8e8a7988dde19c8230ad32cafee5a9e093c872a59acf6c3
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 22, 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