Content-Addressed Block Store
A Python content-addressed storage system with content-defined chunking and automatic deduplication. Efficiently stores large files by splitting them into content-defined chunks and deduplicating at the chunk level.
Features
- Content-Defined Chunking: Rabin fingerprinting approximation for intelligent file splitting
- Automatic Deduplication: Chunk-level deduplication with reference counting
- Optional Compression: zlib compression for space efficiency
- SHA256 Content Addressing: Immutable, verifiable content identifiers
- Garbage Collection: Reference-counted cleanup of unreferenced chunks
- SQLite Metadata: Robust metadata storage with proper indexing
- Thread-Safe: Reentrant lock protection for concurrent access
- Integrity Verification: Hash-based blob verification
Installation
pip install content-addressed-store
Usage
from content_addressed_store import ContentAddressedStore
store = ContentAddressedStore("./my_store", enable_compression=True)
# Store data (returns content hash)
blob_hash = store.put(b"Hello, World!" * 1000, metadata={"type": "text"})
# Retrieve data
data = store.get(blob_hash)
# Verify integrity
assert store.verify(blob_hash)
# Get statistics
print(store.stats())
License
MIT
Metadata
Release files for content-addressed-store 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| content_addressed_store-1.0.0.tar.gz | 6.0 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| content_addressed_store-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 12.3 kB
Release files / content_addressed_store-1.0.0.tar.gz
| Download URL | content_addressed_store-1.0.0.tar.gz |
|---|---|
| Size | 6.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
84f04124c48d472a915ee8dc3a8099b30d55332aa34d84c96acfdea3bfbddf85
|
|
BLAKE2b-256 checksum How to use checksums |
ff831fd1097e4933cd3ca686f5a782bf735e640cc80993e871eee4723fd3ca12
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.6
|
Release files / content_addressed_store-1.0.0-py3-none-any.whl
| Download URL | content_addressed_store-1.0.0-py3-none-any.whl |
|---|---|
| Size | 6.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6eb74e681171f56952aeb8535e8efc399b5a8dd104754a31be5d2a7334dd579e
|
|
BLAKE2b-256 checksum How to use checksums |
00ec1509136de4b3b6e6a263d692df868b5556efa57d070587c5e1236110b19c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.6
|
Security for content-addressed-store 1.0.0
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.