Repository navigation
1.0.0
swift-xet 1.0 makes its public API stable: Xet.withDownloader, XetDownloader and its Configuration, and XetDownloaderError.
Important
Breaking changes
XetDownloaderErroris now a struct with acode, instead of an enum (#18). New codes can be added in minor releases, so code that matched the old cases needs to checkerror.code, with adefaultcase in aswitch. The old associated values are now thestatusCode,responseBody,url,invalidValue, andunderlyingErrorproperties.- Download methods now throw
XetDownloaderErrorwith theinvalidChunkDatacode for malformed chunk data and decompression failures, instead ofXorbErrororLZ4Error(#18). Xorb,LZ4,BG4,XorbError, andLZ4Errorare now internal (#18).- Network failures now throw
XetDownloaderErrorwith thetransportFailedcode, with the original error (such as aURLError) as itsunderlyingError, instead ofURLErroror AsyncHTTPClient errors (#18). XetDownloader.ConfigurationrenamesenableMultipathtoallowsMultipath,autoScaleFetchConcurrencytoscalesFetchConcurrencyAutomatically, andmaxInflightBufferstomaxInFlightBuffers. Code that uses the old names gets an error with a fix-it (#21).- Multipath TCP is now off by default. Set
allowsMultipathtotrueto let connections move to another interface when the primary one is lost, with servers that support Multipath TCP (#21). - The closure passed to
Xet.withDownloadernow runs in the caller's isolation and returns asendingvalue (#20).
Other changes:
Xet.withDownloadercan now be called from@MainActorcode that uses its own state in the closure (#20).XetDownloader.Configurationhas a public initializer (#20).
What's Changed
- Make XetDownloaderError a struct and the codecs internal by @mattt in #18
- Run withDownloader's closure in the caller's isolation by @mattt in #20
- Rename Configuration's Boolean settings and turn multipath off by default by @mattt in #21
- Bump README install snippet to 1.0.0 by @mattt in #22
Full Changelog: 0.3.2...1.0.0