Unified object storage interface for local filesystems and cloud backends
Project description
Gufo Blob
Unified blob storage access with predictable semantics.
Documentation: https://docs.gufolabs.com/gufo_blob/
Source Code: https://github.com/gufolabs/gufo_blob/
Gufo Blob is a lightweight, typed abstraction layer for working with key-based object storage across different backends. It provides a consistent and predictable API for accessing, resolving, and iterating over data regardless of the underlying storage implementation.
Examples
Synchronous API
put/get/delete
from gufo.blob.sync import open_blob
with open_blob("/var/data") as blob:
# Store
blob.put("myproj/k1", b"data")
# Get
v = blob.get("myproj/k1")
# Delete
blob.delete("myproj/k1")
dict-like API
from gufo.blob.sync import open_blob
with open_blob("/var/data") as blob:
# Save
blob["myproj/k1"] = b"data"
# Get
v = blob["myproj/k1"]
# Delete
del blob["myproj/k1"]
Asynchronous API
from gufo.blob.aio import open_blob
async def main():
async with open_blob("/var/data") as blob:
# Store
await blob.put("myproj/k1", b"data")
# Get
v = await blob.get("myproj/k1")
# Delete
await blob.delete("myproj/k1")
Features
- Sync and async modes - Provides API for both sync and async modes of operation.
- Unified blob abstraction — consistent API for working with different storage backends
- Backend-agnostic design — works with local filesystem and pluggable storage implementations
- Fully typed API — strict typing for keys, values, and storage contracts
- Agent-friendly architecture — explicit interfaces and uniform backend semantics simplify AI-assisted development
- Simple object model — intuitive Blob / BlobBase interface with predictable semantics
- Lazy operations — resources are initialized and opened only when required
- Explicit lifecycle control — optional open() / close() with context manager support
- Transparent connection handling — automatic resource management for connected backends
- Efficient scanning — fast iteration over stored keys with minimal overhead
- Key-based access model — uniform resolution of objects via string keys
- Error unification — all runtime issues reduce to
BlobErrorandKeyError - Deterministic behavior — consistent resolution and iteration order guarantees where applicable
- Extensible architecture — easy to add new storage backends and resolvers
- Designed for composition — works naturally inside larger systems and pipelines
On Gufo Stack
This product is a part of Gufo Stack - the collaborative effort led by Gufo Labs. Our goal is to create a robust and flexible set of tools to create network management software and automate routine administration tasks.
To do this, we extract the key technologies that have proven themselves in the NOC and bring them as separate packages. Then we work on API, performance tuning, documentation, and testing. The NOC uses the final result as the external dependencies.
Gufo Stack makes the NOC better, and this is our primary task. But other products can benefit from Gufo Stack too. So we believe that our effort will make the other network management products better.
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 Distribution
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 gufo_blob-0.1.0.tar.gz.
File metadata
- Download URL: gufo_blob-0.1.0.tar.gz
- Upload date:
- Size: 22.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
52182bc0d7ddbd203f842449b387c6781399671989b602ccf2fb411dc942602a
|
|
| MD5 |
15a45729518bf404570c0816d32b5e98
|
|
| BLAKE2b-256 |
2dd88970752f2bb09ae090b9f83be4804e214dc33f4e6771bfe8ed53f13c9073
|
Provenance
The following attestation bundles were made for gufo_blob-0.1.0.tar.gz:
Publisher:
py-tests.yml on gufolabs/gufo_blob
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gufo_blob-0.1.0.tar.gz -
Subject digest:
52182bc0d7ddbd203f842449b387c6781399671989b602ccf2fb411dc942602a - Sigstore transparency entry: 2084181206
- Sigstore integration time:
-
Permalink:
gufolabs/gufo_blob@72aeb5fc34b47ca0501d2125c1faa559d6687eeb -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/gufolabs
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
py-tests.yml@72aeb5fc34b47ca0501d2125c1faa559d6687eeb -
Trigger Event:
release
-
Statement type:
File details
Details for the file gufo_blob-0.1.0-py3-none-any.whl.
File metadata
- Download URL: gufo_blob-0.1.0-py3-none-any.whl
- Upload date:
- Size: 20.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9c26c016f1558b0fa49efdb9929ba26e3d8e8f1dbf3036aa8ff9c6ca82ec70d5
|
|
| MD5 |
ceec7f4b2c581b0cbf1c0df870cefa18
|
|
| BLAKE2b-256 |
6a2c5007aa3dbe10be3ef154e02dc21b08d6f2cb926679b40f7fb6e793c7891a
|
Provenance
The following attestation bundles were made for gufo_blob-0.1.0-py3-none-any.whl:
Publisher:
py-tests.yml on gufolabs/gufo_blob
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gufo_blob-0.1.0-py3-none-any.whl -
Subject digest:
9c26c016f1558b0fa49efdb9929ba26e3d8e8f1dbf3036aa8ff9c6ca82ec70d5 - Sigstore transparency entry: 2084181213
- Sigstore integration time:
-
Permalink:
gufolabs/gufo_blob@72aeb5fc34b47ca0501d2125c1faa559d6687eeb -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/gufolabs
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
py-tests.yml@72aeb5fc34b47ca0501d2125c1faa559d6687eeb -
Trigger Event:
release
-
Statement type: