Skip to content

1.0.0

Choose a tag to compare

@mattt mattt released this 06 Oct 17:57
Immutable release. Only release title and notes can be modified.
143b62b

swift-xet 1.0 makes its public API stable: Xet.withDownloader, XetDownloader and its Configuration, and XetDownloaderError.

Important

Breaking changes

  • XetDownloaderError is now a struct with a code, instead of an enum (#18). New codes can be added in minor releases, so code that matched the old cases needs to check error.code, with a default case in a switch. The old associated values are now the statusCode, responseBody, url, invalidValue, and underlyingError properties.
  • Download methods now throw XetDownloaderError with the invalidChunkData code for malformed chunk data and decompression failures, instead of XorbError or LZ4Error (#18).
  • Xorb, LZ4, BG4, XorbError, and LZ4Error are now internal (#18).
  • Network failures now throw XetDownloaderError with the transportFailed code, with the original error (such as a URLError) as its underlyingError, instead of URLError or AsyncHTTPClient errors (#18).
  • XetDownloader.Configuration renames enableMultipath to allowsMultipath, autoScaleFetchConcurrency to scalesFetchConcurrencyAutomatically, and maxInflightBuffers to maxInFlightBuffers. Code that uses the old names gets an error with a fix-it (#21).
  • Multipath TCP is now off by default. Set allowsMultipath to true to let connections move to another interface when the primary one is lost, with servers that support Multipath TCP (#21).
  • The closure passed to Xet.withDownloader now runs in the caller's isolation and returns a sending value (#20).

Other changes:

  • Xet.withDownloader can now be called from @MainActor code that uses its own state in the closure (#20).
  • XetDownloader.Configuration has 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