SQLite-backed KV store (Rust+PyO3) for large media blobs with structured data support
Project description
KohakuVault
High-performance, SQLite-backed storage with dual interfaces: dict-like for blobs (key-value) and list-like for sequences (columnar). Rust core with Pythonic APIs.
Quick Start
pip install kohakuvault
KV Store - Dict-like interface for binary blobs (images, videos, documents):
from kohakuvault import KVault
vault = KVault("data.db")
vault["image:123"] = image_bytes
vault["video:456"] = video_bytes
data = vault["image:123"]
# Bulk writes with smart caching (NEW in v0.2.2!)
with vault.cache(64*1024*1024):
for i in range(10000):
vault[f"key:{i}"] = data
# Auto-flushes on exit!
Columnar Storage - List-like interface for typed sequences (timeseries, logs, events):
from kohakuvault import ColumnVault
cv = ColumnVault("data.db")
# Primitives
cv.create_column("temperatures", "f64")
temps = cv["temperatures"]
temps.extend([23.5, 24.1, 25.0])
print(temps[0]) # 23.5
# High-performance bulk writes with cache (v0.4.1!)
with temps.cache():
for temp in sensor_readings:
temps.append(temp) # 10-100x faster!
# Efficient slice reading (NEW in v0.4.2!)
values = temps[100:200] # 20-237x faster than loops!
print(len(values)) # 100
# Efficient slice writing (NEW in v0.4.2!)
temps[100:200] = [25.0 + i * 0.1 for i in range(100)] # Batch update!
# Structured data (v0.3.0!)
cv.create_column("users", "msgpack")
users = cv["users"]
users.append({"name": "Alice", "age": 30, "tags": ["vip"]})
print(users[0]) # {'name': 'Alice', 'age': 30, 'tags': ['vip']}
# Strings with encoding (v0.3.0!)
cv.create_column("messages", "str:utf8")
messages = cv["messages"]
messages.append("Hello, 世界!")
print(messages[0]) # 'Hello, 世界!'
DataPacker - Rust-based serialization (NEW in v0.3.0!):
from kohakuvault import DataPacker
# MessagePack for structured data (variable-size)
packer = DataPacker("msgpack")
packed = packer.pack({"user": "alice", "score": 95.5})
data = packer.unpack(packed, 0)
# MessagePack with fixed size (NEW in v0.5.0!)
packer_fixed = DataPacker("msgpack:128") # Fixed 128 bytes (pads if smaller, errors if larger)
packed = packer_fixed.pack({"small": "data"}) # Padded to 128 bytes
# Bulk operations
records = [{"id": i, "val": i*1.5} for i in range(1000)]
packed_all = packer.pack_many(records) # Concatenated bytes
# Unpack with offsets (for variable-size)
offsets = [0, len(packer.pack(records[0]))] # Calculate offsets
unpacked = packer.unpack_many(packed_all, offsets=offsets)
Features
- Dual interfaces: Dict for blobs (KVault), List for sequences (ColumnVault)
- Zero external dependencies: Single SQLite file, no services required
- Memory efficient: Stream multi-GB files, dynamic chunk growth
- Type-safe columnar: Fixed-size (i64, f64, bytes:N) and variable-size (bytes, str, msgpack, cbor)
- Rust performance: Native speed with Pythonic ergonomics
- Smart caching: Write-back cache for 10-100x faster bulk writes (v0.4.1!)
- Efficient slicing: Batch read/write for 20-237x faster range access (NEW in v0.4.2!)
- Variable-size setitem: Size-aware updates with fragment management (NEW in v0.4.2!)
- Structured data: Store dicts/lists directly with MessagePack/CBOR (v0.3.0)
- DataPacker: Rust-based serialization with multi-encoding support (v0.3.0)
Performance (M1 Max MacBook Pro, 50K entries)
KVault
Write (with cache):
- 16KB entries: 24K ops/sec, 377 MB/s
- 1KB entries: 195K ops/sec, 191 MB/s
Read:
- 16KB entries: 63K ops/sec, 987 MB/s
- 1KB entries: 165K ops/sec, 162 MB/s
ColumnVault Write (extend with cache)
- i64: 12.5M ops/sec, 95 MB/s (486x faster than uncached append)
- f64: 12.5M ops/sec, 95 MB/s (468x faster than uncached append)
- msgpack: 1.3M ops/sec, 22 MB/s (1168x faster than uncached append)
ColumnVault Slice Read (v0.4.2)
- f64: 2.3M ops/sec, 17 MB/s (237x faster than single-element loop)
- i64: 2.0M ops/sec, 15 MB/s (135x faster than single-element loop)
- bytes:32: 99K ops/sec, 3 MB/s (101x faster than single-element loop)
- msgpack: 338K ops/sec, 10 MB/s (79x faster than single-element loop)
Hardware: M1 Max MacBook Pro 1TB SSD
- QD1 Sequential: 3,600 MB/s read, 5,100 MB/s write
- QD64 4K Random: 670 MB/s read, 140 MB/s write
Full benchmark: python examples/benchmark.py --entries 50000
Best Practices
Handling Many Large Binary Files
For thousands of large binaries (images, videos, documents), use a hybrid approach:
from kohakuvault import KVault, ColumnVault
kv = KVault("media.db")
cv = ColumnVault(kv) # Share same database
# Store metadata in columnar (efficient for large lists)
cv.create_column("image_ids", "i64")
cv.create_column("image_names", "bytes")
cv.create_column("image_sizes", "i64")
cv.create_column("upload_times", "i64")
ids = cv["image_ids"]
names = cv["image_names"]
sizes = cv["image_sizes"]
times = cv["upload_times"]
# Store actual binaries in KV store
for img_id, img_data, img_name in image_stream:
# Metadata in columnar (fast append, efficient iteration/filtering)
ids.append(img_id)
names.append(img_name)
sizes.append(len(img_data))
times.append(int(time.time()))
# Binary data in KV (optimized for large blobs)
kv[f"blob:{img_id}"] = img_data
# Query metadata without loading binaries
for i in range(len(ids)):
if sizes[i] > 1024 * 1024: # Find images > 1MB
print(f"Large image: {names[i].decode()}")
# Load binary only when needed
data = kv[f"blob:{ids[i]}"]
Why this pattern?
- ✅ Columnar optimized for append-heavy metadata (millions of entries)
- ✅ KV optimized for large binary blobs (streaming, caching)
- ✅ Can query/filter metadata without loading binaries
- ✅ Both share same SQLite file (single-file deployment)
- ✅ Efficient iteration over metadata, lazy loading of binaries
Installation
pip install kohakuvault # When published to PyPI
pip install . # From source
Platform Support:
- ✅ Linux (x86_64)
- ✅ Windows (x86_64)
- ✅ macOS (Apple Silicon M1/M2/M3/M4 only - ARM64)
- ❌ macOS Intel (x86_64) - not supported
Development
Prerequisites: Python 3.10+, Rust (rustup.rs)
# Setup
git clone https://github.com/yourusername/kohakuvault.git
cd kohakuvault
python -m venv .venv && source .venv/bin/activate # or .venv\Scripts\activate on Windows
pip install -e .[dev]
maturin develop # Build Rust extension (once)
# Workflow
# - Edit Python files → changes live immediately
# - Edit Rust files → run `maturin develop` to rebuild
# Tools
pytest # Run tests
black src/kohakuvault # Format Python
cargo fmt # Format Rust
maturin build --release # Build production wheel
Usage
Basic Operations
vault = KVault("media.db")
# Dict-like interface
vault["key"] = b"value"
data = vault["key"]
del vault["key"]
if "key" in vault: ...
# Safe retrieval
data = vault.get("key", default=b"")
# Iteration
for key in vault:
print(f"{key}: {len(vault[key])} bytes")
Streaming Large Files
vault = KVault("media.db", chunk_size=1024*1024) # 1 MiB chunks
# Stream from file → vault
with open("large_video.mp4", "rb") as f:
vault.put_file("video:789", f)
# Stream from vault → file
with open("output.mp4", "wb") as f:
vault.get_to_file("video:789", f)
Bulk Operations with Caching
Recommended: Use context manager for automatic flush
vault = KVault("media.db")
# Safest: Context manager auto-flushes
with vault.cache(cap_bytes=64*1024*1024):
for i in range(1000):
vault[f"item:{i}"] = data
# Auto-flushed here, guaranteed!
# Long-running: Daemon thread auto-flushes every 5 seconds
vault.enable_cache(cap_bytes=64*1024*1024, flush_interval=5.0)
while True:
vault["sensor_data"] = read_sensor()
# Daemon flushes automatically
# Manual control (backward compatible)
vault.enable_cache(cap_bytes=64*1024*1024)
for i in range(1000):
vault[f"item:{i}"] = data
vault.flush_cache() # Manual flush
vault.disable_cache() # Auto-flushes before disabling
Configuration
vault = KVault(
path="media.db",
chunk_size=2*1024*1024, # Streaming chunk size
retries=10, # Retry attempts for busy DB
enable_wal=True, # Write-Ahead Logging
cache_kb=20000, # SQLite cache size
)
Columnar Storage
List-like interface for typed sequences (timeseries, logs, events):
from kohakuvault import ColumnVault
cv = ColumnVault("data.db")
# Fixed-size types: i64, f64, bytes:N
cv.create_column("sensor_temps", "f64")
cv.create_column("timestamps", "i64")
cv.create_column("hashes", "bytes:32") # 32-byte fixed
temps = cv["sensor_temps"]
temps.append(23.5)
temps.extend([24.1, 25.0, 25.3])
print(temps[0], temps[-1], len(temps)) # 23.5, 25.3, 4
# Efficient slice operations (NEW in v0.4.2!)
values = temps[10:20] # Batch read - 237x faster!
temps[10:20] = [25.0 + i * 0.1 for i in range(10)] # Batch write - 20-50x faster!
# Variable-size bytes (for strings, JSON, etc.)
cv.create_column("log_messages", "bytes") # No size = variable!
logs = cv["log_messages"]
logs.append(b"Short message")
logs.append(b"This is a much longer log entry with details...")
print(logs[0]) # Exact bytes, no padding
# Variable-size setitem with size-aware logic (NEW in v0.4.2!)
logs[0] = b"Updated message" # Works even if size different!
logs[5:10] = [b"batch", b"update", b"works", b"too", b"!"] # Batch update!
# Iterate
for temp in temps:
print(temp)
Why columnar?
- Append-heavy workloads (O(1) amortized, like Python list)
- Typed data (int/float/bytes with type safety)
- Efficient iteration and random access
- Dynamic chunk growth (128KB → 16MB, exponential like std::vector)
- Cross-chunk element support (byte-based addressing)
- Minimal memory overhead (incremental BLOB I/O)
See docs/COLUMNAR_GUIDE.md and examples/columnar_demo.py for complete guide.
API Reference
Constructor
KVault(path, chunk_size=1048576, retries=4, backoff_base=0.02,
table="kvault", enable_wal=True, page_size=4096,
mmap_size=268435456, cache_kb=20000)
Methods
Storage
put(key, value)- Store bytesput_file(key, reader, size=None, chunk_size=None)- Stream from file-likeget(key, default=None)- Retrieve bytesget_to_file(key, writer, chunk_size=None)- Stream to file-likedelete(key)- Remove keyexists(key)- Check existence
Caching
enable_cache(cap_bytes, flush_threshold)- Enable write-back cachedisable_cache()- Disable and flush cacheflush_cache()- Commit cached writes, returns count
Maintenance
optimize()- VACUUM databaseclose()- Flush and close
Dict Interface: vault[key], del vault[key], key in vault, len(vault), vault.keys(), vault.values(), vault.items(), etc.
Exceptions: KohakuVaultError, NotFound, DatabaseBusy, InvalidArgument, IoError
Architecture
Python wrapper (src/kohakuvault/proxy.py)
↓ PyO3 bindings
Rust core (src/kvault-rust/lib.rs)
↓ rusqlite
SQLite database (bundled)
Why hybrid? Rust handles SQLite operations safely and efficiently. Python provides the ergonomic dict-like interface.
Contributing
# Setup
git checkout -b feature-name
# Make changes
black src/kohakuvault && cargo fmt # Format
cargo clippy # Basic linting
pytest # Test
git commit && git push
# Open PR
License
Apache 2.0 - see LICENSE
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file kohakuvault-0.5.0.tar.gz.
File metadata
- Download URL: kohakuvault-0.5.0.tar.gz
- Upload date:
- Size: 153.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
27400712b7933947b897ad6e88f92a2f236883c276f17705521f0d397a7ad98e
|
|
| MD5 |
d7d74a95d02a88ffba6e2279f6e18116
|
|
| BLAKE2b-256 |
dab5ee2a974bed50d21b0a3e2e7e25773adde096e090fef0cbbfbf9027635db0
|
Provenance
The following attestation bundles were made for kohakuvault-0.5.0.tar.gz:
Publisher:
release.yml on KohakuBlueleaf/KohakuVault
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
kohakuvault-0.5.0.tar.gz -
Subject digest:
27400712b7933947b897ad6e88f92a2f236883c276f17705521f0d397a7ad98e - Sigstore transparency entry: 673042447
- Sigstore integration time:
-
Permalink:
KohakuBlueleaf/KohakuVault@c1dc191f1f7022262ea7ab742fcff4bce6f9de9b -
Branch / Tag:
refs/tags/v0.5.0 - Owner: https://github.com/KohakuBlueleaf
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@c1dc191f1f7022262ea7ab742fcff4bce6f9de9b -
Trigger Event:
push
-
Statement type:
File details
Details for the file kohakuvault-0.5.0-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: kohakuvault-0.5.0-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 3.0 MB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a2f0426ee95dbd5e2e92792c7b7371421e2fbb2336084af92c2c5de18d169e71
|
|
| MD5 |
9b8670ae00ab8499dae4f26dd0471615
|
|
| BLAKE2b-256 |
8714355387c3cd21939ddd89f38207e4a674db3c20b93bd52454e5ce299ea893
|
Provenance
The following attestation bundles were made for kohakuvault-0.5.0-cp313-cp313-win_amd64.whl:
Publisher:
release.yml on KohakuBlueleaf/KohakuVault
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
kohakuvault-0.5.0-cp313-cp313-win_amd64.whl -
Subject digest:
a2f0426ee95dbd5e2e92792c7b7371421e2fbb2336084af92c2c5de18d169e71 - Sigstore transparency entry: 673042464
- Sigstore integration time:
-
Permalink:
KohakuBlueleaf/KohakuVault@c1dc191f1f7022262ea7ab742fcff4bce6f9de9b -
Branch / Tag:
refs/tags/v0.5.0 - Owner: https://github.com/KohakuBlueleaf
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@c1dc191f1f7022262ea7ab742fcff4bce6f9de9b -
Trigger Event:
push
-
Statement type:
File details
Details for the file kohakuvault-0.5.0-cp313-cp313-manylinux_2_34_x86_64.whl.
File metadata
- Download URL: kohakuvault-0.5.0-cp313-cp313-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 3.6 MB
- Tags: CPython 3.13, manylinux: glibc 2.34+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4a88a402b780e13f878948444072124e29c6bbc6bcc42315ffda79b218d06b33
|
|
| MD5 |
45aadc4d37d182b732e58fd9a43b707d
|
|
| BLAKE2b-256 |
9f3baeae8da90c01af0f37f18db422eaa83d00ee96731a441369a21ddc4342d1
|
Provenance
The following attestation bundles were made for kohakuvault-0.5.0-cp313-cp313-manylinux_2_34_x86_64.whl:
Publisher:
release.yml on KohakuBlueleaf/KohakuVault
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
kohakuvault-0.5.0-cp313-cp313-manylinux_2_34_x86_64.whl -
Subject digest:
4a88a402b780e13f878948444072124e29c6bbc6bcc42315ffda79b218d06b33 - Sigstore transparency entry: 673042476
- Sigstore integration time:
-
Permalink:
KohakuBlueleaf/KohakuVault@c1dc191f1f7022262ea7ab742fcff4bce6f9de9b -
Branch / Tag:
refs/tags/v0.5.0 - Owner: https://github.com/KohakuBlueleaf
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@c1dc191f1f7022262ea7ab742fcff4bce6f9de9b -
Trigger Event:
push
-
Statement type:
File details
Details for the file kohakuvault-0.5.0-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: kohakuvault-0.5.0-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 3.2 MB
- Tags: CPython 3.13, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2a847a8fcbc9259456c9e62ca6483d1a2ed7d2cfe7737949e508f8631ecb9325
|
|
| MD5 |
1fbb20b2fac7c7a2ad4fb728c28edc49
|
|
| BLAKE2b-256 |
b864e3417f5996e3a83b580d25a42ccb1123fdcf70ead356a2d3a21dcef4ade4
|
Provenance
The following attestation bundles were made for kohakuvault-0.5.0-cp313-cp313-macosx_11_0_arm64.whl:
Publisher:
release.yml on KohakuBlueleaf/KohakuVault
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
kohakuvault-0.5.0-cp313-cp313-macosx_11_0_arm64.whl -
Subject digest:
2a847a8fcbc9259456c9e62ca6483d1a2ed7d2cfe7737949e508f8631ecb9325 - Sigstore transparency entry: 673042457
- Sigstore integration time:
-
Permalink:
KohakuBlueleaf/KohakuVault@c1dc191f1f7022262ea7ab742fcff4bce6f9de9b -
Branch / Tag:
refs/tags/v0.5.0 - Owner: https://github.com/KohakuBlueleaf
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@c1dc191f1f7022262ea7ab742fcff4bce6f9de9b -
Trigger Event:
push
-
Statement type:
File details
Details for the file kohakuvault-0.5.0-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: kohakuvault-0.5.0-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 3.0 MB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
924977f2f8eef20eff8e68cfce1e679d7a71c14370554bb162c5f99d297fd0c5
|
|
| MD5 |
5a4c296aab104aba71acd0fc81728ccc
|
|
| BLAKE2b-256 |
a95e94dad63bd865b0a012bb4845a025d6b6526700798451afa2272730e5eb50
|
Provenance
The following attestation bundles were made for kohakuvault-0.5.0-cp312-cp312-win_amd64.whl:
Publisher:
release.yml on KohakuBlueleaf/KohakuVault
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
kohakuvault-0.5.0-cp312-cp312-win_amd64.whl -
Subject digest:
924977f2f8eef20eff8e68cfce1e679d7a71c14370554bb162c5f99d297fd0c5 - Sigstore transparency entry: 673042547
- Sigstore integration time:
-
Permalink:
KohakuBlueleaf/KohakuVault@c1dc191f1f7022262ea7ab742fcff4bce6f9de9b -
Branch / Tag:
refs/tags/v0.5.0 - Owner: https://github.com/KohakuBlueleaf
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@c1dc191f1f7022262ea7ab742fcff4bce6f9de9b -
Trigger Event:
push
-
Statement type:
File details
Details for the file kohakuvault-0.5.0-cp312-cp312-manylinux_2_34_x86_64.whl.
File metadata
- Download URL: kohakuvault-0.5.0-cp312-cp312-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 3.6 MB
- Tags: CPython 3.12, manylinux: glibc 2.34+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f8dcd6303b8d3fe326beac1cf40b6be73ded7f0443451881e570e51318da4d8c
|
|
| MD5 |
8d00f536b1e5f9eb6ef8de796fbea412
|
|
| BLAKE2b-256 |
ee89d43fadf7f44a5d52aad7ce929d5c4bdd63c42f721102e31e086ac7bbd635
|
Provenance
The following attestation bundles were made for kohakuvault-0.5.0-cp312-cp312-manylinux_2_34_x86_64.whl:
Publisher:
release.yml on KohakuBlueleaf/KohakuVault
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
kohakuvault-0.5.0-cp312-cp312-manylinux_2_34_x86_64.whl -
Subject digest:
f8dcd6303b8d3fe326beac1cf40b6be73ded7f0443451881e570e51318da4d8c - Sigstore transparency entry: 673042514
- Sigstore integration time:
-
Permalink:
KohakuBlueleaf/KohakuVault@c1dc191f1f7022262ea7ab742fcff4bce6f9de9b -
Branch / Tag:
refs/tags/v0.5.0 - Owner: https://github.com/KohakuBlueleaf
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@c1dc191f1f7022262ea7ab742fcff4bce6f9de9b -
Trigger Event:
push
-
Statement type:
File details
Details for the file kohakuvault-0.5.0-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: kohakuvault-0.5.0-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 3.2 MB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fdb8f868e0b6ed5b83522601095a76412b49eafd26d656c3eab6df7f839d9d38
|
|
| MD5 |
a5fa247a31cf8db9959a9afb9b2cdaff
|
|
| BLAKE2b-256 |
27efae713247a20cd3a1b335f2e40e0fa53358b95ccac80fb9398a241316d489
|
Provenance
The following attestation bundles were made for kohakuvault-0.5.0-cp312-cp312-macosx_11_0_arm64.whl:
Publisher:
release.yml on KohakuBlueleaf/KohakuVault
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
kohakuvault-0.5.0-cp312-cp312-macosx_11_0_arm64.whl -
Subject digest:
fdb8f868e0b6ed5b83522601095a76412b49eafd26d656c3eab6df7f839d9d38 - Sigstore transparency entry: 673042534
- Sigstore integration time:
-
Permalink:
KohakuBlueleaf/KohakuVault@c1dc191f1f7022262ea7ab742fcff4bce6f9de9b -
Branch / Tag:
refs/tags/v0.5.0 - Owner: https://github.com/KohakuBlueleaf
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@c1dc191f1f7022262ea7ab742fcff4bce6f9de9b -
Trigger Event:
push
-
Statement type:
File details
Details for the file kohakuvault-0.5.0-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: kohakuvault-0.5.0-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 3.0 MB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
66836cb2bcdbed69dec96a27aee571ce2676731f6744be9d2552a716cb0fe743
|
|
| MD5 |
6d3fbf14bd1dc953d3ab88ae57dc0a7e
|
|
| BLAKE2b-256 |
502bfff5bbc66de561203a80aa5992b1740168bc5629990c4790b510b12815ed
|
Provenance
The following attestation bundles were made for kohakuvault-0.5.0-cp311-cp311-win_amd64.whl:
Publisher:
release.yml on KohakuBlueleaf/KohakuVault
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
kohakuvault-0.5.0-cp311-cp311-win_amd64.whl -
Subject digest:
66836cb2bcdbed69dec96a27aee571ce2676731f6744be9d2552a716cb0fe743 - Sigstore transparency entry: 673042560
- Sigstore integration time:
-
Permalink:
KohakuBlueleaf/KohakuVault@c1dc191f1f7022262ea7ab742fcff4bce6f9de9b -
Branch / Tag:
refs/tags/v0.5.0 - Owner: https://github.com/KohakuBlueleaf
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@c1dc191f1f7022262ea7ab742fcff4bce6f9de9b -
Trigger Event:
push
-
Statement type:
File details
Details for the file kohakuvault-0.5.0-cp311-cp311-manylinux_2_34_x86_64.whl.
File metadata
- Download URL: kohakuvault-0.5.0-cp311-cp311-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 3.6 MB
- Tags: CPython 3.11, manylinux: glibc 2.34+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ac1bb81caf11e55f1a8ddf9f2f91e86dab24b3212c27e0f4436d393ed0cd7434
|
|
| MD5 |
fa2b6693a1e1ee538e36fe225dd45dfe
|
|
| BLAKE2b-256 |
e16f1dd4590b9b66bad17687588f460c39a45f185a27ef8420b20078c5df7355
|
Provenance
The following attestation bundles were made for kohakuvault-0.5.0-cp311-cp311-manylinux_2_34_x86_64.whl:
Publisher:
release.yml on KohakuBlueleaf/KohakuVault
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
kohakuvault-0.5.0-cp311-cp311-manylinux_2_34_x86_64.whl -
Subject digest:
ac1bb81caf11e55f1a8ddf9f2f91e86dab24b3212c27e0f4436d393ed0cd7434 - Sigstore transparency entry: 673042496
- Sigstore integration time:
-
Permalink:
KohakuBlueleaf/KohakuVault@c1dc191f1f7022262ea7ab742fcff4bce6f9de9b -
Branch / Tag:
refs/tags/v0.5.0 - Owner: https://github.com/KohakuBlueleaf
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@c1dc191f1f7022262ea7ab742fcff4bce6f9de9b -
Trigger Event:
push
-
Statement type:
File details
Details for the file kohakuvault-0.5.0-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: kohakuvault-0.5.0-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 3.2 MB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
738eda41c83f1bee942a10a4a51ae0f0034c98cb408892577d02192033340f3b
|
|
| MD5 |
d5a1213f3f1349dc866bb26702d68c16
|
|
| BLAKE2b-256 |
22eb7c99a6b189c36080782d589678d5ed014439c21532f107f1d8854d527efe
|
Provenance
The following attestation bundles were made for kohakuvault-0.5.0-cp311-cp311-macosx_11_0_arm64.whl:
Publisher:
release.yml on KohakuBlueleaf/KohakuVault
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
kohakuvault-0.5.0-cp311-cp311-macosx_11_0_arm64.whl -
Subject digest:
738eda41c83f1bee942a10a4a51ae0f0034c98cb408892577d02192033340f3b - Sigstore transparency entry: 673042541
- Sigstore integration time:
-
Permalink:
KohakuBlueleaf/KohakuVault@c1dc191f1f7022262ea7ab742fcff4bce6f9de9b -
Branch / Tag:
refs/tags/v0.5.0 - Owner: https://github.com/KohakuBlueleaf
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@c1dc191f1f7022262ea7ab742fcff4bce6f9de9b -
Trigger Event:
push
-
Statement type:
File details
Details for the file kohakuvault-0.5.0-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: kohakuvault-0.5.0-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 3.0 MB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
be60d8b607af7764f61ee963e45b2186c2449e1aa08d2256dd86a097c3482621
|
|
| MD5 |
33dee2ac55336e12cdf4c170ad00a46b
|
|
| BLAKE2b-256 |
eb48ddfd162039df55f37dbd691fff334843f16e499e173aa25baeb964d397c1
|
Provenance
The following attestation bundles were made for kohakuvault-0.5.0-cp310-cp310-win_amd64.whl:
Publisher:
release.yml on KohakuBlueleaf/KohakuVault
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
kohakuvault-0.5.0-cp310-cp310-win_amd64.whl -
Subject digest:
be60d8b607af7764f61ee963e45b2186c2449e1aa08d2256dd86a097c3482621 - Sigstore transparency entry: 673042552
- Sigstore integration time:
-
Permalink:
KohakuBlueleaf/KohakuVault@c1dc191f1f7022262ea7ab742fcff4bce6f9de9b -
Branch / Tag:
refs/tags/v0.5.0 - Owner: https://github.com/KohakuBlueleaf
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@c1dc191f1f7022262ea7ab742fcff4bce6f9de9b -
Trigger Event:
push
-
Statement type:
File details
Details for the file kohakuvault-0.5.0-cp310-cp310-manylinux_2_34_x86_64.whl.
File metadata
- Download URL: kohakuvault-0.5.0-cp310-cp310-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 3.6 MB
- Tags: CPython 3.10, manylinux: glibc 2.34+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cb3d89570a01f9a9964da3ffa6d201b89325c2f1d14e85200e5c253ac24e73ee
|
|
| MD5 |
6d2ccf459724fe459013311ce9614b68
|
|
| BLAKE2b-256 |
fcaebf825565148309163cff326b86f63c68c2fdc099b28567fc9f8677655fa7
|
Provenance
The following attestation bundles were made for kohakuvault-0.5.0-cp310-cp310-manylinux_2_34_x86_64.whl:
Publisher:
release.yml on KohakuBlueleaf/KohakuVault
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
kohakuvault-0.5.0-cp310-cp310-manylinux_2_34_x86_64.whl -
Subject digest:
cb3d89570a01f9a9964da3ffa6d201b89325c2f1d14e85200e5c253ac24e73ee - Sigstore transparency entry: 673042466
- Sigstore integration time:
-
Permalink:
KohakuBlueleaf/KohakuVault@c1dc191f1f7022262ea7ab742fcff4bce6f9de9b -
Branch / Tag:
refs/tags/v0.5.0 - Owner: https://github.com/KohakuBlueleaf
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@c1dc191f1f7022262ea7ab742fcff4bce6f9de9b -
Trigger Event:
push
-
Statement type:
File details
Details for the file kohakuvault-0.5.0-cp310-cp310-macosx_11_0_arm64.whl.
File metadata
- Download URL: kohakuvault-0.5.0-cp310-cp310-macosx_11_0_arm64.whl
- Upload date:
- Size: 3.2 MB
- Tags: CPython 3.10, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d2c0467a51126c217b94f52a39eef5fdaf0f5f829a7eea0b0d3a771c57510ada
|
|
| MD5 |
8081a71c838dc0a7c26a5fa62f9f4a6f
|
|
| BLAKE2b-256 |
d58492c32f088a1991418de2ce607900674430d06b18bc8fc9d8e1a7d48c65f6
|
Provenance
The following attestation bundles were made for kohakuvault-0.5.0-cp310-cp310-macosx_11_0_arm64.whl:
Publisher:
release.yml on KohakuBlueleaf/KohakuVault
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
kohakuvault-0.5.0-cp310-cp310-macosx_11_0_arm64.whl -
Subject digest:
d2c0467a51126c217b94f52a39eef5fdaf0f5f829a7eea0b0d3a771c57510ada - Sigstore transparency entry: 673042487
- Sigstore integration time:
-
Permalink:
KohakuBlueleaf/KohakuVault@c1dc191f1f7022262ea7ab742fcff4bce6f9de9b -
Branch / Tag:
refs/tags/v0.5.0 - Owner: https://github.com/KohakuBlueleaf
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@c1dc191f1f7022262ea7ab742fcff4bce6f9de9b -
Trigger Event:
push
-
Statement type: