Skip to main content

Unified object storage interface for local filesystems and cloud backends

Project description

Gufo Blob

Unified blob storage access with predictable semantics.

PyPi version Downloads Python Versions License Build codecov Sponsors Ruff


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 BlobError and KeyError
  • 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


Download files

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

Source Distribution

gufo_blob-0.1.0.tar.gz (22.9 kB view details)

Uploaded Source

Built Distribution

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

gufo_blob-0.1.0-py3-none-any.whl (20.5 kB view details)

Uploaded Python 3

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

Hashes for gufo_blob-0.1.0.tar.gz
Algorithm Hash digest
SHA256 52182bc0d7ddbd203f842449b387c6781399671989b602ccf2fb411dc942602a
MD5 15a45729518bf404570c0816d32b5e98
BLAKE2b-256 2dd88970752f2bb09ae090b9f83be4804e214dc33f4e6771bfe8ed53f13c9073

See more details on using hashes here.

Provenance

The following attestation bundles were made for gufo_blob-0.1.0.tar.gz:

Publisher: py-tests.yml on gufolabs/gufo_blob

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

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

Hashes for gufo_blob-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9c26c016f1558b0fa49efdb9929ba26e3d8e8f1dbf3036aa8ff9c6ca82ec70d5
MD5 ceec7f4b2c581b0cbf1c0df870cefa18
BLAKE2b-256 6a2c5007aa3dbe10be3ef154e02dc21b08d6f2cb926679b40f7fb6e793c7891a

See more details on using hashes here.

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

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