Add bounded remote download and checksums #19

Closed
opened 2026-10-16 10:12:48 +00:00 by mmacia · 0 comments
Owner

Objective

Download remote responses into library-owned temporary files with bounded resource use.

Scope

Stream decoded response chunks through decompression, incremental MD5 checksum calculation, and temporary-file storage. Enforce compressed, decoded, temporary, expansion-ratio, and decoder-buffer limits. Support ETag extraction, If-None-Match, HTTP 304, checksum unchanged outcomes, and cleanup on every path.

Acceptance Criteria

  • Complete download and checksum occur before parsing or item exposure.
  • Checksums are over decoded bytes and are lowercase MD5 values.
  • 304 returns :not_modified without downloading a body.
  • Matching decoded checksum returns :not_changed without events.
  • Temporary files are removed on success, failure, and cancellation.
  • Byte, compression, expansion-ratio, ETag, and checksum behavior is tested.
## Objective Download remote responses into library-owned temporary files with bounded resource use. ## Scope Stream decoded response chunks through decompression, incremental MD5 checksum calculation, and temporary-file storage. Enforce compressed, decoded, temporary, expansion-ratio, and decoder-buffer limits. Support ETag extraction, `If-None-Match`, HTTP 304, checksum unchanged outcomes, and cleanup on every path. ## Acceptance Criteria - Complete download and checksum occur before parsing or item exposure. - Checksums are over decoded bytes and are lowercase MD5 values. - 304 returns `:not_modified` without downloading a body. - Matching decoded checksum returns `:not_changed` without events. - Temporary files are removed on success, failure, and cancellation. - Byte, compression, expansion-ratio, ETag, and checksum behavior is tested.
mmacia self-assigned this 2026-10-16 10:12:48 +00:00
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: mmacia/feed_reader#19