Skip to content

feat(s3): direct s3 download with manifest-based dedup (~12x speedup) - #92

Merged
Malinskiy merged 5 commits into
mainfrom
feature/improve-download-perf
Sep 27, 2026
Merged

Malinskiy merged 5 commits into
mainfrom
feature/improve-download-perf

Conversation

@Malinskiy

Copy link
Copy Markdown
Member

Download artifacts directly from R2/S3 using temporary credentials Falls back to the legacy download path when the api returns 404 (runs without a manifest).

  • Add rust-s3 dependency for S3-compatible direct downloads
  • New download_v2 module: streaming downloads with 64 concurrency, 3-attempt retry, and manifest link handling
  • Handle manifest links: symlinks on Unix, file copy on Windows
  • Apply v2 path to both download and run --output flows

Benchmark on 35k-file run:
Before: ~51 min After: ~4 min 20s

Download artifacts directly from R2/S3 using temporary credentials
Falls back to the legacy download path when the api returns 404
(runs without a manifest).

- Add rust-s3 dependency for S3-compatible direct downloads
- New download_v2 module: streaming downloads with 64 concurrency,
  3-attempt retry, and manifest link handling
- Handle manifest links: symlinks on Unix, file copy on Windows
- Apply v2 path to both `download` and `run --output` flows

Benchmark on 35k-file run:
  Before:  ~51 min
  After:  ~4 min 20s
rust-s3 0.37.x pins quick-xml ^0.38 with no upstream fix available yet.
Exposure is limited to parsing S3 error responses from R2, not
attacker-controlled input.
@Malinskiy
Malinskiy merged commit ebd63e3 into main Sep 27, 2026
19 checks passed
@Malinskiy
Malinskiy deleted the feature/improve-download-perf branch September 27, 2026 11:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant