Skip to main content

Production-ready Redis caching for Python with intelligent reliability features and Rust-powered performance

Project description

cachekit

Python caching, batteries included

Production-ready caching for Python with intelligent reliability features and Rust-powered performance.

PyPI Version Python Versions codecov License: MIT


[!WARNING] Alpha Software โ€” cachekit is under active development. While we've been building and testing for ~6 months, the API is not yet stable and breaking changes may occur between releases. We're committed to making this library rock-solid, but we need your help!

๐Ÿ› Found a bug? Please open an issue โ€” even small ones help us improve.

๐Ÿ’ก Something feel off? We want to hear about rough edges, confusing APIs, or missing features.

Your feedback directly shapes the path to 1.0. Cheers!


Why cachekit?

Simple to use, production-ready 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
Adaptive timeouts Auto-tune to system load

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 (alpha) 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)

[!TIP] No Redis? No worries! Use @cache(backend=None) for L1-only in-memory caching, like lru_cache, but with all the bells and whistles.

More Backends

CachekitIO โ€” Managed SaaS (Alpha)
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 alpha โ€” 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 (Alpha) Managed caching with zero infrastructure. L1+L2 caching, circuit breaker, and automatic failover โ€” no Redis to manage. cachekit.io is in closed alpha โ€” 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 - โœ… - โœ… โœ…
Adaptive Timeouts - โœ… - โœ… โœ…
Backpressure โœ… โœ… - โœ… โœ…
Integrity Checking - โœ… - โœ… โœ… ๐Ÿ”’
Encryption - - - - โœ… Required
L1 SWR - โœ… - โœ… โœ…
L1 Invalidation - - - โœ… โœ…
L1 Namespace Index - - - โœ… โœ…
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.

@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       โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

[!TIP] Building in Rust? The core compression, checksums, and encryption are available as a standalone crate: cachekit-core Crates.io


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)

[!NOTE] All reliability features are enabled by default with @cache.production. Use @cache.minimal to disable them for maximum throughput.

Smart Serialization

Serializer Speed Use Case
StandardSerializer โ˜…โ˜…โ˜…โ˜…โ˜† General Python types, NumPy, Pandas
OrjsonSerializer โ˜…โ˜…โ˜…โ˜…โ˜… JSON APIs (2-5x faster than stdlib)
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

[!IMPORTANT] All serializers support configurable checksums for corruption detection using xxHash3-64 (8 bytes). Enabled by default in @cache.production and @cache.secure.

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

[!CAUTION] When handling PII, medical, or financial data, always use @cache.secure to enforce encryption.

cachekit employs comprehensive security tooling:

  • Supply Chain Security: cargo-deny for license compliance + 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

Per-Function Statistics:

  • Statistics tracked per decorated function (shared across all calls)
  • Thread-safe via RLock (all methods safe for concurrent access)
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

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
Adaptive Timeouts Auto-tune to infrastructure

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 alpha โ€” 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_CHUNK_SIZE_MB=100
CACHEKIT_ENABLE_COMPRESSION=true

[!NOTE] If both CACHEKIT_REDIS_URL and REDIS_URL are set, CACHEKIT_REDIS_URL takes precedence.


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.


PyPI ยท GitHub ยท Issues

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cachekit-0.10.1.tar.gz (234.9 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

cachekit-0.10.1-cp313-cp313-win_amd64.whl (447.4 kB view details)

Uploaded CPython 3.13Windows x86-64

cachekit-0.10.1-cp313-cp313-manylinux_2_28_aarch64.whl (523.6 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

cachekit-0.10.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (543.8 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

cachekit-0.10.1-cp313-cp313-macosx_11_0_arm64.whl (499.7 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

cachekit-0.10.1-cp313-cp313-macosx_10_12_x86_64.whl (523.6 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

cachekit-0.10.1-cp312-cp312-win_amd64.whl (447.2 kB view details)

Uploaded CPython 3.12Windows x86-64

cachekit-0.10.1-cp312-cp312-manylinux_2_28_aarch64.whl (523.3 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

cachekit-0.10.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (543.5 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

cachekit-0.10.1-cp312-cp312-macosx_11_0_arm64.whl (499.4 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

cachekit-0.10.1-cp312-cp312-macosx_10_12_x86_64.whl (523.3 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

cachekit-0.10.1-cp311-cp311-win_amd64.whl (445.3 kB view details)

Uploaded CPython 3.11Windows x86-64

cachekit-0.10.1-cp311-cp311-manylinux_2_28_aarch64.whl (522.3 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

cachekit-0.10.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (541.7 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

cachekit-0.10.1-cp311-cp311-macosx_11_0_arm64.whl (502.0 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

cachekit-0.10.1-cp311-cp311-macosx_10_12_x86_64.whl (523.4 kB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

cachekit-0.10.1-cp310-cp310-win_amd64.whl (445.6 kB view details)

Uploaded CPython 3.10Windows x86-64

cachekit-0.10.1-cp310-cp310-manylinux_2_28_aarch64.whl (522.6 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

cachekit-0.10.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (541.9 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

cachekit-0.10.1-cp310-cp310-macosx_11_0_arm64.whl (502.2 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

cachekit-0.10.1-cp310-cp310-macosx_10_12_x86_64.whl (523.6 kB view details)

Uploaded CPython 3.10macOS 10.12+ x86-64

File details

Details for the file cachekit-0.10.1.tar.gz.

File metadata

  • Download URL: cachekit-0.10.1.tar.gz
  • Upload date:
  • Size: 234.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for cachekit-0.10.1.tar.gz
Algorithm Hash digest
SHA256 9c066f3e2c577a24abf704eb7ce88279117371d6187053432261356352bdb356
MD5 c7880a7852b6e9d31e3d8c026a7a5240
BLAKE2b-256 ce6bec4c3aadcdaab44d686623a2e5dec3b955a49bf80fe640766d36fb2c5a15

See more details on using hashes here.

Provenance

The following attestation bundles were made for cachekit-0.10.1.tar.gz:

Publisher: release-please.yml on cachekit-io/cachekit-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cachekit-0.10.1-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: cachekit-0.10.1-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 447.4 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for cachekit-0.10.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 c9a913defc361a1eda3d2a616e07be9a51766869f312e0ee3bc4f340d3e118de
MD5 123aed9c051402b19f9b790a1cb7d4c8
BLAKE2b-256 5b73d82939b2e97041c37ba517c45cd998c29abe151dac5668724f07e9b35bd5

See more details on using hashes here.

Provenance

The following attestation bundles were made for cachekit-0.10.1-cp313-cp313-win_amd64.whl:

Publisher: release-please.yml on cachekit-io/cachekit-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cachekit-0.10.1-cp313-cp313-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for cachekit-0.10.1-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0f35d4b955f5e20fff098a65a3e785cb77151126753f73a4f9f46c6e845aaaa4
MD5 b12785edb0fec452e60fbb07c8bf83f8
BLAKE2b-256 46b0c05a17a7a5b3612001b81377fd26e4b6c371b308a5a99d5c29e4a76c47d0

See more details on using hashes here.

Provenance

The following attestation bundles were made for cachekit-0.10.1-cp313-cp313-manylinux_2_28_aarch64.whl:

Publisher: release-please.yml on cachekit-io/cachekit-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cachekit-0.10.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cachekit-0.10.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e3698eb92884c4573fce65030e42dce3ba6eca700cc6ea1e4bf9bfaefef689bb
MD5 24d1e1c814713d1aab3b939313ba04ff
BLAKE2b-256 78c3d2f5622d744051cc242b1687e3d49c09bd4335e3231d5ddc2b2e016e8170

See more details on using hashes here.

Provenance

The following attestation bundles were made for cachekit-0.10.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release-please.yml on cachekit-io/cachekit-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cachekit-0.10.1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cachekit-0.10.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d1fc8995c838a8c7d7fe0da6598fc66a01cba1403a74ff87c120c08184c9e7ae
MD5 c995c8ec216f7ca93662749a89da98f1
BLAKE2b-256 4d705f3128180418991bb49eeff24454718eb233f376a61d76b0cf7daa6486f9

See more details on using hashes here.

Provenance

The following attestation bundles were made for cachekit-0.10.1-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: release-please.yml on cachekit-io/cachekit-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cachekit-0.10.1-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for cachekit-0.10.1-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 fe726dec89160fe42fd0d721cf5d4db991a8dfc0d60e542bea2f60b85fba87ac
MD5 1cc2b1083c2f4f3b1943956567e0da01
BLAKE2b-256 bb122a10309ec8085c2da3c94da8537930a906b5f578be026ac51494ed6ec728

See more details on using hashes here.

Provenance

The following attestation bundles were made for cachekit-0.10.1-cp313-cp313-macosx_10_12_x86_64.whl:

Publisher: release-please.yml on cachekit-io/cachekit-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cachekit-0.10.1-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: cachekit-0.10.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 447.2 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for cachekit-0.10.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 f0d3227f8f15e87313e86a47d2175164ea13df45ad0489617c5b17abce153fa7
MD5 391c108c4b3bcc59726e8dbc0b56241b
BLAKE2b-256 794d9477bfe7a4693045b1c4891159f1bd339bcbe66b5fb8f9590c6e275f351d

See more details on using hashes here.

Provenance

The following attestation bundles were made for cachekit-0.10.1-cp312-cp312-win_amd64.whl:

Publisher: release-please.yml on cachekit-io/cachekit-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cachekit-0.10.1-cp312-cp312-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for cachekit-0.10.1-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 fa46641e3b02afbb59ab532fdc8ff28031a9d66d14c0dc2fdd1241f3c8f40408
MD5 ff86e777e31a9382b5d462a396d31d48
BLAKE2b-256 106c4bf6db97e7078c3f6d91cf35f43991f346444d5a13134cbcabbd6aeef750

See more details on using hashes here.

Provenance

The following attestation bundles were made for cachekit-0.10.1-cp312-cp312-manylinux_2_28_aarch64.whl:

Publisher: release-please.yml on cachekit-io/cachekit-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cachekit-0.10.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cachekit-0.10.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6ed82790536e827ca1fe8e598c569df3ea88b1d703f5140ebaf28ea5e43b2958
MD5 7a1b0ee26f629d770e4532321c6a7047
BLAKE2b-256 ba8c65e6edeea369c40e8ca1ba285924bc6f40438fa9ed48e1b3d3b0c516a465

See more details on using hashes here.

Provenance

The following attestation bundles were made for cachekit-0.10.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release-please.yml on cachekit-io/cachekit-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cachekit-0.10.1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cachekit-0.10.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 83222cb66d28038962058cb268c12333b0fbc8483fb53c7d680a5dfd8b8b983b
MD5 5bdc4eb67db18c3d9eadb023f2073f65
BLAKE2b-256 34a93239f853fd61d5e9659e496657805393859fb0d0c6af2441074644f9806d

See more details on using hashes here.

Provenance

The following attestation bundles were made for cachekit-0.10.1-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: release-please.yml on cachekit-io/cachekit-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cachekit-0.10.1-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for cachekit-0.10.1-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 5a3bbd8791359060a59d12dd991bbb923940ae6e5fa1e9bd3691a78d1883cb82
MD5 12612dcafa1fbfb132d7733ff15cc062
BLAKE2b-256 6c8f7db246971c322fb98e0923e15908678e3857a4ad298586e1462b9ba6ff15

See more details on using hashes here.

Provenance

The following attestation bundles were made for cachekit-0.10.1-cp312-cp312-macosx_10_12_x86_64.whl:

Publisher: release-please.yml on cachekit-io/cachekit-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cachekit-0.10.1-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: cachekit-0.10.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 445.3 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for cachekit-0.10.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 99c98953c2a631331ba0ca100f73cead9dea7bbc91ff05d1207590ed72dbac11
MD5 e94b89f96c4e3253561e666272a7002e
BLAKE2b-256 860f172d202e71ac60fc246d28f5dbd530951125eb4bccbbb97c1d2203c11fed

See more details on using hashes here.

Provenance

The following attestation bundles were made for cachekit-0.10.1-cp311-cp311-win_amd64.whl:

Publisher: release-please.yml on cachekit-io/cachekit-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cachekit-0.10.1-cp311-cp311-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for cachekit-0.10.1-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 302955cfe487147939545656675a1e0fd3b48ce1b5d76a15c29f915a78d68d35
MD5 3c45731817fee070852795ba558bd883
BLAKE2b-256 37f5a0b0b4d9235795facab0e56663f769f485c81808d1e929ce836ba315e5a2

See more details on using hashes here.

Provenance

The following attestation bundles were made for cachekit-0.10.1-cp311-cp311-manylinux_2_28_aarch64.whl:

Publisher: release-please.yml on cachekit-io/cachekit-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cachekit-0.10.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cachekit-0.10.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 83a542c9d54e733b8e0c504816d94eb1e4d86f16079cf8947da5bbff37972123
MD5 af7d77a2bc5650223c3bb8438172088f
BLAKE2b-256 594e97de08ad5aa4d85a24d1d3427f0700360ebc2c1726e368e5ca21e9dbbb71

See more details on using hashes here.

Provenance

The following attestation bundles were made for cachekit-0.10.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release-please.yml on cachekit-io/cachekit-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cachekit-0.10.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cachekit-0.10.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3300dbd1d6cb027dbfcd7f7af2dc8dd7ca282f4445741fe1095d36fef9505569
MD5 eef30f395e1784c9702f1d7bf83e617e
BLAKE2b-256 8e0ae91ae3c7e00875482817170aa7ef8fdd66c380edc1a4e3cc6db4b640e73b

See more details on using hashes here.

Provenance

The following attestation bundles were made for cachekit-0.10.1-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: release-please.yml on cachekit-io/cachekit-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cachekit-0.10.1-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for cachekit-0.10.1-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 280e87073e2bb0c07041d19419a95c2a73d195010f744fb9595ca1c9d15cf597
MD5 5f65e2ade2dfdff80a8904dfd96c649a
BLAKE2b-256 4e9ac46121ea12be0c4d23c63b9831cf65b09596829034cd6074afb8741d0976

See more details on using hashes here.

Provenance

The following attestation bundles were made for cachekit-0.10.1-cp311-cp311-macosx_10_12_x86_64.whl:

Publisher: release-please.yml on cachekit-io/cachekit-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cachekit-0.10.1-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: cachekit-0.10.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 445.6 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for cachekit-0.10.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 40dabea1d3352f1021f49645c57939f8dd552e9fececfa0f11f9d840aa614aba
MD5 72c60a9fa2557c7b3cb1db232488506a
BLAKE2b-256 73a51cf309ba3dd324445dc72189081d90e4912ef3b51ba0d37b82b02e5a3634

See more details on using hashes here.

Provenance

The following attestation bundles were made for cachekit-0.10.1-cp310-cp310-win_amd64.whl:

Publisher: release-please.yml on cachekit-io/cachekit-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cachekit-0.10.1-cp310-cp310-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for cachekit-0.10.1-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 fa2537301289d0ea73778bdab0ef98db5f2ddaed3fe4f0fe5a807b5ed891843b
MD5 1c565c509484d73db02414b31837dc44
BLAKE2b-256 ef4e497384cc518a765c27cbec02f500e19758a7ac5a2da05437880690360c4d

See more details on using hashes here.

Provenance

The following attestation bundles were made for cachekit-0.10.1-cp310-cp310-manylinux_2_28_aarch64.whl:

Publisher: release-please.yml on cachekit-io/cachekit-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cachekit-0.10.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cachekit-0.10.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 da3c06759e443b024cabb948a88ab18d257cf2dfdc6906987094a6a32343373b
MD5 eea699c867a785115826923bfc18f325
BLAKE2b-256 e9ac122279978e5c4c588ebea28bb16574197b8b99f074b9f764c2929967a489

See more details on using hashes here.

Provenance

The following attestation bundles were made for cachekit-0.10.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release-please.yml on cachekit-io/cachekit-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cachekit-0.10.1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cachekit-0.10.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0596fb9b5a686fcc35c8e6c291c321c8e1c1d0c11661d611bd7ec48ea1c4e293
MD5 7f14496b52f04144112fb396483026e8
BLAKE2b-256 5addd1de12f0ee84431d494625bc28eb20557f09067f18340c256ad18d25089a

See more details on using hashes here.

Provenance

The following attestation bundles were made for cachekit-0.10.1-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: release-please.yml on cachekit-io/cachekit-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cachekit-0.10.1-cp310-cp310-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for cachekit-0.10.1-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 b34c322646b5c3d38a7118addc6865895684b45d3758723a11e7298232ba7a2f
MD5 77b93ea3d90f2d52b09613697a5b0858
BLAKE2b-256 7df8d21251c040cfef320e679e024d73fff6ec8d2574f3e263d932ce49d6e55a

See more details on using hashes here.

Provenance

The following attestation bundles were made for cachekit-0.10.1-cp310-cp310-macosx_10_12_x86_64.whl:

Publisher: release-please.yml on cachekit-io/cachekit-py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page