multi-storage-client
Unified high-performance Python client for object and file stores.
What it is and what it does
Multi-Storage Client is a unified Python library that abstracts away the differences between multiple object and file storage services—AWS S3, Azure Blob Storage, Google Cloud Storage, NVIDIA AIStore, OCI Object Storage, and POSIX file systems—behind a single generic interface. Instead of learning and maintaining separate code paths for each storage provider, you write once against MSC's API and can swap storage backends without changing application logic.
The library is built with performance in mind and includes compiled extensions (Rust-backed wheels) for CPython on Linux and macOS. It depends on 13 runtime packages including jmespath, jsonschema, pyyaml, opentelemetry-api, and others for parsing, validation, observability, and file operations. The project is actively maintained by NVIDIA, with recent releases and ongoing development.
Use it for:
- Build data pipelines that read from multiple cloud providers without rewriting storage access code for each one.
- Migrate workloads between cloud providers by changing a configuration parameter instead of refactoring application code.
- Develop hybrid cloud or multi-cloud applications that access both on-premises POSIX storage and cloud object stores uniformly.
- Create portable ML training scripts that can pull datasets from S3, GCS, or Azure interchangeably.
- Abstract storage details in microservices so teams can optimize cost or performance by switching providers without application changes.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Unified Python client providing a generic interface to read, write, and manage objects across multiple storage services including AWS S3, Azure Blob Storage, Google Cloud Storage, and POSIX file systems.
Yes, if you work with multiple storage providers or anticipate needing to switch between them. The unified interface and active maintenance make it a solid choice for multi-cloud or hybrid deployments. Medium install friction (13 dependencies, compiled wheels) is typical for a performance-focused library. No known vulnerabilities and permissive licensing remove barriers. Not necessary if you only use a single storage provider and are comfortable with its native SDK.
Install
multi-storage-client on PyPI
pip
pip install multi-storage-clientuv
uv add multi-storage-clientpoetry
poetry add multi-storage-clientInstalling multi-storage-client
Before you install
Medium install friction due to 13 runtime dependencies and compiled wheels for multiple Python versions (3.10–3.13) and platforms. Active maintenance with recent release (21 days old) and ongoing repository activity.
License in practice
Apache-2.0 permissive license allows commercial and private use with minimal restrictions; suitable for most projects that can comply with attribution and derivative-work disclosure.
Quickstart
pip install multi-storage-client
from multi_storage_client import StorageClient
client = StorageClient()
object_data = client.get('s3://bucket/key')
Requires Python 3.10 or later; compiled wheels available for CPython on x86_64 and aarch64 Linux, macOS arm64, and PyPy.
Verify before relying
- Specific performance benchmarks or throughput claims for multi-provider scenarios.
- Whether all 13 runtime dependencies are strictly required or if some are optional.
- Support status and API stability guarantees for NVIDIA AIStore and OCI Object Storage.
- Whether the client handles provider-specific features (e.g., S3 versioning, Azure SAS tokens) or only a common subset.
Package facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (<4,>=3.10) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 13 — filelock, jmespath, jsonschema, python-dateutil, pyyaml, opentelemetry-api, xattr, wcmatch, tqdm, lark, prettytable, psutil, tzdata |
| Maintenance | actively maintained — 21 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 622,933/month — #5,707 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: multi_storage_client-1.0.1-cp310-cp310-macosx_14_0_arm64.whl; multi_storage_client-1.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; multi_storage_client-1.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; multi_storage_client-1.0.1-cp311-cp311-macosx_14_0_arm64.whl; multi_storage_client-1.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; multi_storage_client-1.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; multi_storage_client-1.0.1-cp312-cp312-macosx_14_0_arm64.whl; multi_storage_client-1.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; multi_storage_client-1.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; multi_storage_client-1.0.1-cp313-cp313-macosx_14_0_arm64.whl; multi_storage_client-1.0.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; multi_storage_client-1.0.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Tags
More Software Development packages
Provides backported and experimental type hints…
permissive · top 100 on PyPI
numpyNumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
fastapiFastAPI is a Python web framework for building…
permissive · top 100 on PyPI
annotated-docProvides a way to document function parameters,…
permissive · top 100 on PyPI
typerTyper builds command-line applications from…
permissive · top 1,000 on PyPI
distlibDistlib provides low-level packaging utilities…
permissive · top 1,000 on PyPI
aistoreProvides Python client APIs and PyTorch…
permissive · top 15,000 on PyPI
opendalProvides unified Python access to multiple…
permissive · top 15,000 on PyPI
pinsPins publishes and shares Python objects (data,…
permissive · top 15,000 on PyPI
blobfileProvides a unified Python file interface for…
permissive · top 5,000 on PyPI
maggmaMaggma provides a unified interface for…
unclear · top 15,000 on PyPI
obspecDefines a Python protocol for abstracting…
permissive · top 15,000 on PyPI
smart-openProvides a unified, open()-compatible Python…
permissive · top 1,000 on PyPI
cloudbridgeCloudBridge provides a unified Python API that…
permissive · top 15,000 on PyPI
obstoreobstore provides a unified Python interface to…
permissive · top 5,000 on PyPI
boostedblobboostedblob is a command-line tool and async…
permissive · top 5,000 on PyPI