-
Notifications
You must be signed in to change notification settings - Fork 2
Closed
Description
https://strawgate.com/py-key-value/wrappers.html
see:
::: key_value.aio.wrappers.compression.CompressionWrapper options: show_source: false members: - init
CompressionWrapper
Compresses values before storing and decompresses on retrieval using gzip compression.
::: key_value.aio.wrappers.compression.CompressionWrapper options: show_source: false members: - init
Use Cases
Storing large JSON objects
Reducing network transfer for distributed stores
Optimizing disk usage
Example
from key_value.aio.stores.memory import MemoryStore
from key_value.aio.wrappers.compression import CompressionWrapper
store = CompressionWrapper(
key_value=MemoryStore(),
min_size_to_compress=1024 # Only compress values > 1KB
)
# Large values are automatically compressed
await store.put(
key="large-doc",
value={"content": "..." * 1000},
collection="documents"
)
Performance Considerations
Compression adds CPU overhead but reduces storage/transfer size
The min_size_to_compress parameter helps avoid compressing small values where overhead exceeds benefit
Uses gzip with compression level 1 for speed
Metadata
Metadata
Assignees
Labels
No labels