robinzhon
Minimal, high-performance Python helpers for concurrent S3 object transfers.
A small extension that exposes fast, concurrent downloads (and uploads) to Python using a Rust implementation optimized for I/O-bound workloads.
Install
- From PyPI:
pip install robinzhonoruv add robinzhon - From source (requires Rust + maturin):
# build and install into active venv
maturin develop --release
Quick start
Download a single object:
from robinzhon import S3Downloader
d = S3Downloader("us-east-1")
path = d.download_file("my-bucket", "path/to/object.txt", "./object.txt")
print(path) # ./object.txt
Download many objects into a directory:
files = ["data/a.csv", "data/b.csv"]
res = d.download_multiple_files("my-bucket", files, "./downloads")
print(res.successful)
print(res.failed)
Upload a single file or multiple files:
from robinzhon import S3Uploader
u = S3Uploader("us-east-1")
u.upload_file("my-bucket", "dest/key.txt", "./local.txt")
paths_and_keys = [("./local1.txt", "key1"), ("./local2.txt", "key2")]
res = u.upload_multiple_files("my-bucket", paths_and_keys)
print(res.successful, res.failed)
Configuration
- Both
S3DownloaderandS3Uploaderaccept an optional concurrency argument (default 5):
S3Downloader("us-east-1", max_concurrent_downloads=10)
S3Uploader("us-east-1", max_concurrent_uploads=10)
API summary
-
Results
- Attributes:
successful: List[str],failed: List[str] - Methods:
is_complete_success(),has_success(),has_failures(),total_count(),success_rate()
- Attributes:
-
S3Downloader(region_name, max_concurrent_downloads=5)
download_file(bucket, key, local_path) -> strdownload_multiple_files(bucket, keys, base_dir) -> Resultsdownload_multiple_files_with_paths(bucket, [(key, local_path), ...]) -> Results
-
S3Uploader(region_name, max_concurrent_uploads=5)
upload_file(bucket, key, local_path) -> strupload_multiple_files(bucket, [(local_path, key), ...]) -> Results
Building & testing
- Requires Rust toolchain and
maturinto build the extension. - Tests are simple Python tests that assume the compiled extension is available.
License
See the LICENSE file in the repository.
Metadata
Release files for robinzhon 0.2.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| robinzhon-0.2.2.tar.gz | 92.7 kB | Without provenance | Details for robinzhon-0.2.2.tar.gz |
Built distributions (wheels)
Total release size: 148.0 MB
Release files / robinzhon-0.2.2.tar.gz
| Download URL | robinzhon-0.2.2.tar.gz |
|---|---|
| Size | 92.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4e99c32aaaee59c5399fe57004b9bfae2ef5f15aa5bc778619210e74b809b0cb
|
|
BLAKE2b-256 checksum How to use checksums |
50721d4c38b9217857cce9f731bdd4073b2ec105d5c28fc27eaf908b78e3d013
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
maturin/1.12.6
|
Release files / robinzhon-0.2.2-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | robinzhon-0.2.2-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 7.4 MB |
| Tags | Linux glibc 2.17+ x86-64 PyPy 3.11 PyPy 3.11 7.3 |
|
SHA-256 checksum How to use checksums |
ec71de147a45b09805912dab77d3ad394bcefbc5e87639d09a0085236e843cfe
|
|
BLAKE2b-256 checksum How to use checksums |
c0efda5799263b0e48ed363e999d06d5608cd901988a8ad364e8b8ead0fdc4b7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
maturin/1.12.6
|
Release files / robinzhon-0.2.2-cp314-cp314-win_amd64.whl
| Download URL | robinzhon-0.2.2-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 5.7 MB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
81abe4eda7686840fe9684e6a8dd6ce162aeb37890d29dad9442a5493391d008
|
|
BLAKE2b-256 checksum How to use checksums |
d7afbcaf71afdd75c773fd0a54d859279a8d1b4f9868a8323911242d169443a9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
maturin/1.12.6
|
Release files / robinzhon-0.2.2-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | robinzhon-0.2.2-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 7.4 MB |
| Tags | CPython 3.14 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
8354d887dc1fcead49dc61e800f3fd51d0b931d0f3c9afcde9c63cac39eb962b
|
|
BLAKE2b-256 checksum How to use checksums |
d0a5045b526c5f90f335ccf2cd4e64c7d9b051680e054fb3d2453dbdc21ce0cb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
maturin/1.12.6
|
Release files / robinzhon-0.2.2-cp314-cp314-macosx_11_0_arm64.whl
| Download URL | robinzhon-0.2.2-cp314-cp314-macosx_11_0_arm64.whl |
|---|---|
| Size | 6.7 MB |
| Tags | CPython 3.14 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
dcc705d9d6056b4ac606d4d1910f7bbbf35c5b30adf8ea1a3d7906f231fa619e
|
|
BLAKE2b-256 checksum How to use checksums |
eafcc5c1310b809e39f52b9fcd90cf9803d9c75b7fd635afe6c2b76db5c9f0db
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
maturin/1.12.6
|
Release files / robinzhon-0.2.2-cp314-cp314-macosx_10_12_x86_64.whl
| Download URL | robinzhon-0.2.2-cp314-cp314-macosx_10_12_x86_64.whl |
|---|---|
| Size | 6.9 MB |
| Tags | CPython 3.14 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
de8666bee9ff1b353bebec831e35a91426f37f1c9c001225a9ebc9f9e5eb2740
|
|
BLAKE2b-256 checksum How to use checksums |
169453687891696760d02f105778946efed0f283fda8a4a898c681548029358f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
maturin/1.12.6
|
Release files / robinzhon-0.2.2-cp313-cp313-win_amd64.whl
| Download URL | robinzhon-0.2.2-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 5.7 MB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
70937f7671a7ac96be8c8116ca988f3c5df5fa5d8e430fab2b944681fe913148
|
|
BLAKE2b-256 checksum How to use checksums |
bc7d85ea431a794400081d791ce625028fa61a1c89ec92e2781cde598de08ce8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
maturin/1.12.6
|
Release files / robinzhon-0.2.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | robinzhon-0.2.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 7.4 MB |
| Tags | CPython 3.13 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
7e8f056c4aee596a43a7fae77a5d850873fbd8647f327e993a4c867d3b277266
|
|
BLAKE2b-256 checksum How to use checksums |
52ece8450a866e151132b18289d9ba3ded2cf951211ab567c9200605ee14beb3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
maturin/1.12.6
|
Release files / robinzhon-0.2.2-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | robinzhon-0.2.2-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 6.7 MB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
dea8a88d1121c8a0aa0d5221d116a96d9f892dd17017e85569e2315b34090f0e
|
|
BLAKE2b-256 checksum How to use checksums |
f0737020c25c445a10c973df5633635ff094ef7e7893ff7be3f03c855ef510c2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
maturin/1.12.6
|
Release files / robinzhon-0.2.2-cp313-cp313-macosx_10_12_x86_64.whl
| Download URL | robinzhon-0.2.2-cp313-cp313-macosx_10_12_x86_64.whl |
|---|---|
| Size | 6.9 MB |
| Tags | CPython 3.13 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
91d46b9fcacabe63f72f24b55753c7562383e28e13ea96e67f7f2687eb23fb28
|
|
BLAKE2b-256 checksum How to use checksums |
61966f04d1e2c7f758e5b09db7dcc501a6a4ea9191640c87eb689ea94953e186
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
maturin/1.12.6
|
Release files / robinzhon-0.2.2-cp312-cp312-win_amd64.whl
| Download URL | robinzhon-0.2.2-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 5.7 MB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
691a4ebb93df98ea9ca3e9fd6665918ac0cf3f63b64baa9d0a316aa6c789f28e
|
|
BLAKE2b-256 checksum How to use checksums |
f2367bfe33aa8bcb5b78f648a51250565f0c8fc9a0bf94081e2cbac39108efcd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
maturin/1.12.6
|
Release files / robinzhon-0.2.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | robinzhon-0.2.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 7.4 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
818f5109e7d8f7acbb81842c18fbfd0b1f3a7c7b898ea9cddec92c0107f23c73
|
|
BLAKE2b-256 checksum How to use checksums |
0f64cdbb913ccd06fc56e374879dd0d10369cbcc0266d45d4a36cfdba667d185
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
maturin/1.12.6
|
Release files / robinzhon-0.2.2-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | robinzhon-0.2.2-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 6.7 MB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
174535ccab06f35c082465f3c945eff1d43b6e893ccf47b8232f5b3e0eabfafe
|
|
BLAKE2b-256 checksum How to use checksums |
3a7d0546b06c9ff050f8d595b13c36d9e0470a57a6f647d58964bb14155f3946
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
maturin/1.12.6
|
Release files / robinzhon-0.2.2-cp312-cp312-macosx_10_12_x86_64.whl
| Download URL | robinzhon-0.2.2-cp312-cp312-macosx_10_12_x86_64.whl |
|---|---|
| Size | 6.9 MB |
| Tags | CPython 3.12 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
28118128d5b8ee873dd34cd90e95e8da22f3fbc212ca4215acda9186731dc214
|
|
BLAKE2b-256 checksum How to use checksums |
9b155962914fe1a34054f58924db3cce7849c4de4158e3311f3884734efbec0e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
maturin/1.12.6
|
Release files / robinzhon-0.2.2-cp311-cp311-win_amd64.whl
| Download URL | robinzhon-0.2.2-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 5.7 MB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
5e63a337564286fed8bb5d3be9f36b68838149a248d0f30621e899380b23c135
|
|
BLAKE2b-256 checksum How to use checksums |
2709b53e42b51733e6156e25754ed92330a716c4cfec3196923f222640ac0be9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
maturin/1.12.6
|
Release files / robinzhon-0.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | robinzhon-0.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 7.4 MB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
fdc16dc1bb7616d2fcf7e19446200e7ea0b6cd8c4c53727352cb31e8d46cda61
|
|
BLAKE2b-256 checksum How to use checksums |
54d55efdd87fee419040f72fd0644f06da5330c6d2fdec866d54a05638b7fe84
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
maturin/1.12.6
|
Release files / robinzhon-0.2.2-cp311-cp311-macosx_11_0_arm64.whl
| Download URL | robinzhon-0.2.2-cp311-cp311-macosx_11_0_arm64.whl |
|---|---|
| Size | 6.7 MB |
| Tags | CPython 3.11 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
712245fea0bd6cc890121a8d874b6d6809638e7ea88bba68934cd46f6191b157
|
|
BLAKE2b-256 checksum How to use checksums |
901a093dc60e3f9514ae16a1bafcced532b4db8dc3365b5312ee438932565cea
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
maturin/1.12.6
|
Release files / robinzhon-0.2.2-cp311-cp311-macosx_10_12_x86_64.whl
| Download URL | robinzhon-0.2.2-cp311-cp311-macosx_10_12_x86_64.whl |
|---|---|
| Size | 6.9 MB |
| Tags | CPython 3.11 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
a4ba047601e7329827bf0ec61a3c7999bc1902874b068e11ec32122f0b57fe55
|
|
BLAKE2b-256 checksum How to use checksums |
ff401daaa732a7d81cde715edee5bcbd4eea7b17150b8ce37223fe67d393244c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
maturin/1.12.6
|
Release files / robinzhon-0.2.2-cp310-cp310-win_amd64.whl
| Download URL | robinzhon-0.2.2-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 5.7 MB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
837b4e1498a01e56f84b5f67387aadad64ef660a809a58cab7fd04cb4b4ae8a1
|
|
BLAKE2b-256 checksum How to use checksums |
a819c3dcbce20d25f3e9c818c53cfa9e3dafb9e1811a5159d4e531390f4600ae
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
maturin/1.12.6
|
Release files / robinzhon-0.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | robinzhon-0.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 7.4 MB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
87855723aabd3171f732a05e32cb85ae573a40589bebb395c48fb8066554cae7
|
|
BLAKE2b-256 checksum How to use checksums |
3b3d647f7c2964f0ab6a5d92d59ea81d0913d34a83a3c8663c7044f84723f5dd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
maturin/1.12.6
|
Release files / robinzhon-0.2.2-cp310-cp310-macosx_11_0_arm64.whl
| Download URL | robinzhon-0.2.2-cp310-cp310-macosx_11_0_arm64.whl |
|---|---|
| Size | 6.7 MB |
| Tags | CPython 3.10 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
43011eabd216adad8afaebd625ff6f06c9a269d04e07da67c388f0b7e068ed43
|
|
BLAKE2b-256 checksum How to use checksums |
dde038f287e4f393c8c0234e77a2127eb00c895c55db63183fe4513468e78162
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
maturin/1.12.6
|
Release files / robinzhon-0.2.2-cp310-cp310-macosx_10_12_x86_64.whl
| Download URL | robinzhon-0.2.2-cp310-cp310-macosx_10_12_x86_64.whl |
|---|---|
| Size | 6.9 MB |
| Tags | CPython 3.10 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
defbe6366c3e35edf01fdadabecf8e45371abca3b4d40028c9b733e977aafc9e
|
|
BLAKE2b-256 checksum How to use checksums |
622fccb34c4ae22947d4a9c0bb61ad77417c1e7c8118d1c0990721ff29ef6937
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
maturin/1.12.6
|
Release files / robinzhon-0.2.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | robinzhon-0.2.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 7.4 MB |
| Tags | CPython 3.9 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
037ba793fab26f7fba85489f52b83cea10ef548b3e2881248c1002f60de9a376
|
|
BLAKE2b-256 checksum How to use checksums |
20f34476e99a62eaf802050a40d79ec89a4461c4b0a874e6a77c965d2942d272
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
maturin/1.12.6
|
Security for robinzhon 0.2.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.