Repository navigation
swift-xet 1.1 uses the current Xet reconstruction API and retries failed requests.
- Downloads now use version 2 of the CAS reconstruction API, which the Xet protocol recommends. If a server doesn't support it, the downloader uses version 1 (#23).
- The downloader now retries requests that fail with a network error or with HTTP status 408, 429, or 5xx other than 501. By default, it makes up to 5 retries, each after a random wait of up to 3, 9, 27, 81, and 243 seconds. If a xorb download fails partway through, the retry skips the chunks it already received (#24).
- New
XetDownloader.ConfigurationsettingsmaxRetriesandretryBaseDelaycontrol retries. SetmaxRetriesto 0 to turn them off (#24). - A canceled download stops waiting for a CAS token right away (#24).
- A malformed reconstruction response with a range that ends before it starts now throws
XetDownloaderErrorwith thereconstructionDecodingFailedcode, instead of stopping the process (#23).
What's Changed
- Use version 2 of the reconstruction API with a version 1 fallback by @mattt in #23
- Retry failed requests with exponential backoff by @mattt in #24
- Clarify which network failures are retried by @mattt in #25
Full Changelog: 1.0.0...1.1.0