github kean/Nuke 13.0.0-beta.1
Nuke 13.0 (Beta 1)

pre-release16 hours ago

Nuke 13 is an incremental release that takes more advantage of Swift Concurrency and Data Race Safety by introducing a global ImagePipelineActor on which its subsystems are all synchronized. It ensures thread-safety, removes 20 usages of @unchecked Sendable, and makes the framework even leaner with ~5% less code in the main module. The future versions will completely switch to Swift Concurrency, but it will require a couple of more iterations.

Requirement: Xcode 16.

  • Increase deployment targets to iOS 14, tvOS 14, macOS 11, watchOS 7
  • Add global actor ImagePipelineActor. ImagePipeline, ImageTask, ImagePrefetcher, and some other internal types are synchronized on the new actor.
  • Soft-deprecate closure-based ImagePipeline APIs
  • Soft-deprecate ImagePipeline Combine extension and move them to NukeExtensions
  • Remove ImagePipeline.Configuration.callbackQueue
  • Remove queue parameter from ImagePipeline loadImage and loadData method. The callbacks are now isolated to the @MainActor and are @Sendable.
  • Add ImageTask.isCancelling to make it easier to transition to Nuke 13 in case you were using ImageTask.state for checking for cancellation invoked by the client (this might change in the upcoming betas)
  • Rename ImagePipelineDelegate to ImagePipeline.Delegate
  • Remove ImagePipeline.Delegate imageTaskDidStart and other methods soft-deprecated in Nuke 12.7.
  • Remove ImageRequest initializers accepting dataPublisher (Combine) – use Swift Concurrency instead
  • Update DataLoading protocol to use Swift Concurrency instead of closures
  • Deprecate FetchImage Combine support

Don't miss a new Nuke release

NewReleases is sending notifications on new releases.