Skip to content

Releases: kean/Nuke

Nuke 12.7 (Beta 1)

07 May 00:32
Compare
Choose a tag to compare
Nuke 12.7 (Beta 1) Pre-release
Pre-release

πŸ› Call for Testing. This release contains some major internal changes to the core APIs. Please help with testing the newly introduced and the existing ImagePipeline APIs, and report any issues before it gets shipped.

This release contains some major improvements to the Structured Concurrency support and introduced a re-engineered ImagePipeline.

  • Add previews: AsyncStream<ImageResponse>, progress: AsyncStream<Progress>, image: PlatformImage async and reponse: ImageResponse async directly to ImageTask and deprecate AsyncImageTask. These APIs have zero cost unless you use them.
  • Add ImageTask.Event and add events: AsyncStream<Event> to ImageTask for observing all events associated with the image loading.
  • Improve the support for AsyncStream: a new stream is created every time you access the respective property to make it easier to have multiple consumers.
  • Add ImagePipelineDelegate/imageTask(:didReceiveEvent:pipeline:) and deprecate the previous methods it replaced (context: these methods were introduced in Nuke 11.0 as the initial and misguided attempt at Structured Concurrency support that tried to borrow from the URLSession API design)
  • (Internal) Rework ImagePipeline that accumulated a lot of cruft after the introduction of data tasks, Combine, Async/Await, and AsyncStream support in the previous releases.
  • Deprecate ImagePipeline/loadData(with:) and ImagePipeline/data(with:) methods that accept URL as parameters – use the ImageRequest variants instead (these are rarely used and low-level APIs that don't require convenience variants)
  • Remove @discardableResult from ImagePipeline/data(with:) async throws – it was never meant to be there
  • Rename ImageTask/progress to ImageTask/currentProgress (warning: this is a small breaking change in the API)
  • Fix some of the Strict Concurrency Checking & Swift 6 warnings preparing for the upcoming Swift releases
  • Fix documentation for AsyncImageTask/previews that was previously specifying that it was delivering the previews and the final image – it's only the previews.

Nuke 12.6

24 Apr 01:51
Compare
Choose a tag to compare

Fixes

  • Fix an issue with an optimization that is supposed to skip decompression if one or more processors are applied
  • Fix a [Decompressor] Error -17102 decompressing image -- possibly corrupt console error message when using ImagePipeline.Configuration.isUsingPrepareForDisplay (disabled by default). The pipeline will now skip decompression for .png.
  • Fix #705 with integration between thumbnail options (link) and original data caching: the original data is now stored without a thumbnail key
  • Fix an issue where .storeAll and .automatic cache policies would not store the thumbnail data
  • Fix #746 an issue with ImageRequest.UserInfoKey.scaleKey not interacting correctly with coalescing
  • Fix #763 SwiftUI Warning: Accessing StateObject's object without being installed on a View when using onStart

Changes

  • Add support for initializing ImageProcessors.CoreImageFilter with CIFilter instances (fixes #758 )
  • Add support for disk cache lookup for intermediate processed images (as opposed to only final and original as before)
  • Add an optimization that loads local resources with file and data schemes quickly without using DataLoader and URLSession. If you rely on the existing behavior, this optimization can be turned off using the isLocalResourcesSupportEnabled configuration option. #779
  • Update the infrastructure for coalescing image-processing tasks to use the task-dependency used for other operations

Deprecations

  • Deprecate ImagePipeline.Configuration.dataCachingQueue and perform data cache lookups on the pipeline's queue, reducing the amount of context switching

Nuke 12.5

23 Mar 13:42
Compare
Choose a tag to compare

What's Changed

  • Fix Xcode 15.3 concurrency warnings when using Screen.scale by @jszumski in #766
  • Add showPlaceholderOnFailure parameter to show placeholder in case of image loading failure by @mlight3 in #764
  • Fix image loading test on iOS 17 by @woxtu in #768
  • Update thumbnail key value for ImageRequest by @woxtu in #769
  • Remove trailing whitespaces by @woxtu in #767
  • Apply if let shorthand syntax by @mlight3 in #762

New Contributors

Full Changelog: 12.4.0...12.5.0

Nuke 12.4

10 Feb 18:10
Compare
Choose a tag to compare

What's Changed

New Contributors

Nuke 12.3

06 Jan 20:34
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 12.2.0...12.3.0

Nuke 12.2

23 Nov 16:41
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 12.1.6...12.2.0

Nuke 12.1.6

19 Aug 14:57
Compare
Choose a tag to compare
  • Improve ImageCache (memory cache) performance by 20%
  • Improve NukeExtensions performance by 5%
  • Update the code to support future visionOS releases by switching to canImport where possible

Nuke 12.2 (Beta 2)

19 Aug 14:04
Compare
Choose a tag to compare
Nuke 12.2 (Beta 2) Pre-release
Pre-release
  • Fix compilation visionOS errors on Xcode 15 Beta 6

Warning

Swift Package Manager is not supported yet. There seem to be compilation errors when adding .visionOS(.v1) to the list of the supported versions. More updates coming soon.

Nuke 12.1.5

29 Jul 12:07
Compare
Choose a tag to compare
  • Fix #717 by moving DataCache metadata to a hidden file - #718

Nuke 12.1.4

22 Jul 21:44
Compare
Choose a tag to compare
  • Upgrade from CommonCrypto to CryptoKit and slightly optimize how cryptographic hashes are converted to strings (used as filenames for DataCache)
  • Deprecate DataCache/isCompressionEnabled. It was initially added as a general-purpose feature used in Pulse, but it's not recommended to be used with most image formats.
  • DataCache now performs sweeps less frequently
  • Minor docs correction – #715 by @tdkn

New Contributors

  • @tdkn made their first contribution in #715