Introduction¶
Storix is a filesystem for people who already think in filesystems.
Cloud storage SDKs make you relearn storage for every provider: containers and
blobs here, buckets and keys there, each with its own client, its own errors,
its own idea of what a "path" is. Storix hides that behind one idea you already
know: a unix filesystem. You open a session, you get a working directory, and you
call ls, cd, cat, mkdir, mv, rm. The backend underneath can be your
local disk, an in-memory store, or Azure Data Lake, and your code does not change.
The mental model¶
A Storix session is like a shell logged into one machine:
- It has a current working directory and a home, so relative paths and
cdwork. - Paths are resolved the unix way:
~,.., and.all behave as you expect. - Every operation raises a typed error on failure. Nothing returns
Falseand hopes you check it.
Underneath, the session talks to a small StorageBackend port (about 14
methods). Backends implement that port and nothing else. They do no path logic
and speak only in storix errors, so the core stays identical across all of them.
What makes it different¶
- Python-first.
echoaccepts native Python values:bytes,str, anIterator[bytes], or anAsyncIterator[bytes]. You hand storix the data in whatever shape you already have it. - Streaming and memory-efficient. Because writes accept iterators and reads can stream, a multi-gigabyte file moves through bounded memory in chunks instead of being loaded whole. See Reading and writing.
- Sync and async from one source. The async API under
storix.aiois generated from the sync source of truth, so the two never drift, and a single conformance suite proves both against every backend. - Composable layers. Cross-cutting behavior (sandboxing, caching, capability backfill) is middleware that wraps a backend and satisfies the same port, so layers compose with backends and with each other. See Layers.
- Typed and safe. The package ships
py.typed. Errors are a typed taxonomy. A sandboxed session cannot see or escape above its root, not even by bypassing the core.
Ready? Install it, then walk through the Quickstart.