documentation/docfx/releases/2.88.4.md
.NET 8, Apple Silicon and WASM refresh · Released August 22, 2023 · NuGet · GitHub Release
API changes · SkiaSharp API diff · HarfBuzzSharp API diff
SkiaSharp 2.88.4 adds .NET 8 and Apple Silicon macOS support and refreshes bundled native libraries. This release adds native ARM64 macOS binaries, .NET 8 WASM assets for Blazor, and moves the WinUI target onto JSImport on net7.0. It refreshes libpng, libexpat and zlib, ships the Android .aar inside the NuGet, and picks up Uno WASM improvements including EH+SIMD.
None in this release.
.NET on macOS-arm64 no longer runs SkiaSharp under Rosetta. (#2468).aar is now included in the NuGet package so consumers no longer have to source it separately. — ❤️ @dellis1972 (#2465)JSImport on net7.0, aligning with the modern WinUI/Uno interop model. — ❤️ @jeromelaban (#2428)SKColor hex-string parsing was rewritten to avoid the per-character allocations and lookups it used to do. — ❤️ @jwikberg (#2467)SKCanvasView no longer throws when the view is disposed before it has been rendered for the first time. — ❤️ @jjzhang12 (#2472)SKXamlCanvas on WASM tolerates a missing canvas element, updates the bitmap SKAlphaType correctly, and disambiguates SKGLView between Uno and MAUI targets. — ❤️ @roubachof, @jeromelaban (#2443, #2529)SKXamlCanvas on Uno now defaults Opaque to false on macOS and iOS to match the platform expectation, and SKSwapChainPanel was updated for Android and iOS. — ❤️ @roubachof (#2398, #2400, #2401, #2477)ToRect extension no longer returns wrong bounds in an edge case. — ❤️ @niza93 (#2392)using statements to reduce nesting. — ❤️ @Lehonti (#2528)HarfBuzzSharp 2.8.2.4 adds native binaries for Apple Silicon macOS, ships the Hot Restart native reference, and enables WASM multi-threading and SIMD alongside SkiaSharp.
Thank you to everyone who contributed to this release!
| Contributor | Contributions |
|---|---|
| @jeromelaban | Moved WinUI to JSImport on net7.0, disambiguated SKGLView, and enabled WASM EH+SIMD in all configurations for net8+ (#2286, #2428, #2457, #2495, #2503, #2529) |
| @roubachof | Fixed the Uno SKXamlCanvas Alpha type on WASM, defaulted Opaque on Apple platforms, and updated the Android and iOS SKSwapChainPanel (#2398, #2400, #2401, #2443) |
| @pjcollins | Contributed to the modern-platform enablement work landing in this release (#2389, #2393) |
| @dellis1972 | Made the Android .aar ship inside the NuGet package (#2465) |
| @FoggyFinder | Added a defensive check to avoid an exception in a lifecycle race path (#2313) |
| @JamieMagee | Contributed dependency and infrastructure improvements (#2232) |
| @jjzhang12 | Fixed the SKCanvasView dispose exception when the view is disposed before it has been rendered (#2472) |
| @jwikberg | Rewrote hex-string parsing in SKColor for a large performance win (#2467) |
| @Lehonti | Removed nesting by adopting block-scoped using statements (#2528) |
| @myroot | Fixed Tizen canvas-size calculation on high-DPI displays (#2322) |
| @niza93 | Fixed the ToRect extension method (#2392) |
| @Redth | Contributed to the modern-platform enablement work landing in this release (#2303) |
Preview 96 shipped the final Hot Restart native reference.
Preview 95 landed the libpng/libexpat refresh, WinUI JSImport move, the SKCanvasView disambiguation and the using-scope cleanup.
Preview 82 added the .NET 8 WASM assets and the ToRect fix.
Preview 76 added the .NET iOS/Catalyst samples, faster SKColor hex parsing and ARM64 macOS binaries.
Preview 70 opened the line with zlib 1.2.13, Uno Opaque and swap-chain fixes, and the drop of the .NET 5 SDK requirement.