A thin asyncio
wrapper for Azure Storage
I wanted a low-latency asyncio
library for accessing Azure Storage via persistent connections (essentially tables and queues) and the existing Python SDK (which is auto-generated from API specs) was both too high-level and not async-ready.
In comparison with its somewhat slow pace, this can now (as published) upload roughly 2.5K "hello world" blobs/s and enumerate roughly 3K/s across the Atlantic, which is pretty decent.
This is an intentionally low-level wrapper, and meant largely for my own consumption. However, pull requests are welcome.
Since this targets Python 3.6+ (Ubuntu still only ships with 3.6.9 in 2020), I'm making liberal use of type annotations (which are still not uniform) and f-strings.
- SAS Token support
- advanced message semantics (including queueing status codes)
- message peek/clear/update
- blob enumeration/creation/tier management
- blob retrieval/deletion
- blob container enumeration/creation/deletion
- queue metadata
- queue enumeration
- message queueing/retrieval/deletion
- queue creation/deletion
- table batch operations (batch update implemented, result parsing not yet)
- table entry creation/updating/deletion/querying (with EDM annotation of supported types)
- table creation/deletion/querying
- Python 3.6
aiohttp
ujson
(optional)uvloop
(optional)