Skip to main content

storage-bridge

A Python library providing a typeclass-based abstraction for managing diverse storage backends. Storage Manager simplifies and standardizes interactions with storage systems, enabling seamless access to local files, in-memory storage, and cloud-based resources.

Key Features Unified Interface: Interact with various storage backends using a consistent API. Extensible Framework: Add custom storage backends with minimal implementation effort. Mock-Friendly: Built-in support for testing with mock storage or local solutions. Batch and Transactional Support: Perform bulk operations or enable transactional workflows. Why Use Storage Manager? Modern applications often require integration with multiple storage systems—local, remote, or in-memory. Storage Manager homogenizes these interactions, letting developers focus on application logic rather than backend differences.

Installation

Install via pip:

pip install storage_bridge

Usage

Core API

The Storage typeclass provides the core methods:

save(key, value): Save a value under a key. load(key): Retrieve a value by key. delete(key): Remove a key-value pair. list_keys(): List all keys in the storage. Additional methods like exists, update, save_batch, and backup are derived from these core methods.

Example: File-Based Storage

from storage_bridge.implementation import FileStorage

# Create a file-based storage backend
store = FileStorage(filepath='data.json')

# Save and load data
store.save('user', {'name': 'Alice', 'age': 30})
print(store.load('user'))  # Output: {'name': 'Alice', 'age': 30}

# List keys
print(store.list_keys())  # Output: ['user']

# Delete data
store.delete('user')

Example: In-Memory Storage

from storage_bridge.implementation import MemoryStorage

# Create an in-memory storage backend
memory_store = MemoryStorage()

# Save and retrieve data
memory_store.save('session', {'token': 'abc123'})
print(memory_store.load('session'))  # Output: {'token': 'abc123'}

Testing with Mock Storage

from storage_bridge.implementation import MemoryStorage

def test_storage():
    mock_store = MemoryStorage()
    mock_store.save('test_key', 'test_value')
    assert mock_store.load('test_key') == 'test_value'
    assert 'test_key' in mock_store.list_keys()
    mock_store.delete('test_key')

Extending Storage Manager

To create a custom storage backend, subclass Storage and implement the core methods (save, load, delete, list_keys).

Example: Custom Storage

from storage_bridge.typeclass import Storage

class CustomStorage(Storage):
    def __init__(self):
        self.data = {}

    def save(self, key, value):
        self.data[key] = value

    def load(self, key):
        if key not in self.data:
            raise KeyError(f"Key '{key}' not found.")
        return self.data[key]

    def delete(self, key):
        if key in self.data:
            del self.data[key]
        else:
            raise KeyError(f"Key '{key}' not found.")

    def list_keys(self):
        return list(self.data.keys())

Roadmap

Add cloud storage integrations (AWS S3, Google Cloud Storage, Azure Blob Storage). Introduce advanced features like data versioning and compression. Expand support for transactional and distributed workflows.

Contributing

Contributions are welcome! Please fork the repository and submit a pull request with your changes.

License

storage-bridge is licensed under the MIT License. See LICENSE for more details.

Metadata

Release files for storage-bridge 0.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for storage-bridge 0.1.3
File Size Uploaded
storage_bridge-0.1.3.tar.gz 6.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for storage-bridge 0.1.3
File Interpreter ABI Platform
storage_bridge-0.1.3-py3-none-any.whl Python 3 none any Details

Total release size: 11.7 kB

Release files / storage_bridge-0.1.3.tar.gz

Download URL storage_bridge-0.1.3.tar.gz
Size 6.0 kB
Tags Source
SHA-256 checksum
How to use checksums
c50145257b2b14f0311425114f7a438987e6ad62e724ab9e9f5e1d56cf0b4bd8
BLAKE2b-256 checksum
How to use checksums
25219ba730ad518f607c67bc38eb7032b92aabd06bf538cf24b46e2a9bc5a728
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.13.1

Release files / storage_bridge-0.1.3-py3-none-any.whl

Download URL storage_bridge-0.1.3-py3-none-any.whl
Size 5.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bdd17e00f0189f456992b26f3e8b18b0c153a844a1045d436fdea8e7b7bf385f
BLAKE2b-256 checksum
How to use checksums
7d47564aa4100823c5bb3a8cf68c9442fc1fd97b1811567605cfc8c6b0464819
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.13.1

Release history Release notifications | RSS feed

This release

0.1.3 This release

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page