Summary
(From PR #19 review)
The resume implementation in src/storage/streaming_transfer.rs reads and discards all bytes up to the checkpoint offset, re-hashing them for verification. For a 10GB blob resuming at 9GB, this means reading 9GB just to skip forward.
The doc mentions "the caller should handle seeking if possible" but there's no AsyncSeek integration.
Fix
Accept AsyncRead + AsyncSeek and seek past the checkpoint offset, or store a partial hash state in the checkpoint for continuation.
Summary
(From PR #19 review)
The resume implementation in
src/storage/streaming_transfer.rsreads and discards all bytes up to the checkpoint offset, re-hashing them for verification. For a 10GB blob resuming at 9GB, this means reading 9GB just to skip forward.The doc mentions "the caller should handle seeking if possible" but there's no
AsyncSeekintegration.Fix
Accept
AsyncRead + AsyncSeekand seek past the checkpoint offset, or store a partial hash state in the checkpoint for continuation.