Skip to content

Releases: nextml-code/fast-s3

v4.0.0

Choose a tag to compare

@FelixAbrahamsson FelixAbrahamsson released this 04 Sep 07:57

fast-s3 4.0.0

Rewrite of the transfer engine for many small files. boto3 is gone; transfers run on a single asyncio event loop with an aiohttp-based S3 client and hand-rolled SigV4 signing, keeping hundreds of requests in flight from one process at ~0.1 ms CPU per object.

Measured on Wasabi eu-central-1 over 1 Gbit ethernet with 27 KB files: ~1,800 files/s download and ~2,200 files/s upload at concurrency 256, versus ~1,600 / ~1,400 for rclone.

Breaking changes

  • boto3, botocore and s3transfer are no longer dependencies.
  • n_workers is deprecated in favour of concurrency (default 256); worker_batch_size and transfer-manager kwargs were removed.
  • buffer_size now bounds memory in ordered mode as well. Defaults to 4x concurrency, or 32x concurrency when ordered=True, because one slow object stalls ordered iteration.
  • Requires Python >= 3.9.

Added

  • Retries with exponential backoff on connection errors and 429/5xx; 404/403 fail immediately and are reported per file, never raised from iteration.
  • Hedged GET/HEAD requests (hedge=) to cut the latency tail.
  • Uploader accepts bytes, file paths or file-like objects and reads files lazily under the concurrency limit; usable as a context manager.
  • AsyncS3Client exported for direct asyncio use.
  • Tests: AWS signature vectors, retry behaviour against a fake server, optional integration tests (FAST_S3_TEST_*).
  • benchmarks/compare_rclone.py and benchmarks/compare_rclone_upload.py.

🤖 Generated with Claude Code

https://claude.ai/code/session_01PypmjWnWFCaqquVV7k7GU9

v3.0.1

Choose a tag to compare

@FelixAbrahamsson FelixAbrahamsson released this 13 Aug 11:56

Full Changelog: v3.0.0...v3.0.1

v3.0.0

Choose a tag to compare

@FelixAbrahamsson FelixAbrahamsson released this 13 Aug 10:51

What's Changed

New Contributors

Full Changelog: v2.0.1...v3.0.0

v2.0.1

Choose a tag to compare

@JoarGruneau JoarGruneau released this 07 Aug 14:10

Full Changelog: v2.0.0...v2.0.1

v2.0.0

Choose a tag to compare

@FelixAbrahamsson FelixAbrahamsson released this 21 Feb 19:32

Full Changelog: v1.0.0...v2.0.0

v1.0.0

Choose a tag to compare

@FelixAbrahamsson FelixAbrahamsson released this 25 Jan 07:51

Full Changelog: v0.1.1...v1.0.0

Version 0.1.1

Choose a tag to compare

@FelixAbrahamsson FelixAbrahamsson released this 22 Jan 09:17

Full Changelog: v0.1.0...v0.1.1

Version 0.1.0

Choose a tag to compare

@FelixAbrahamsson FelixAbrahamsson released this 12 Jul 14:55
v0.1.0

build: pypi github workflow

Version 0.0.2

Choose a tag to compare

@FelixAbrahamsson FelixAbrahamsson released this 09 Jun 13:48
v0.0.2

improve: do not crash on failed downloads

Version 0.0.1

Choose a tag to compare

@FelixAbrahamsson FelixAbrahamsson released this 09 Jun 13:17
v0.0.1

doc: update readme