Back to Skiasharp

2.88.0

documentation/docfx/releases/2.88.0.md

4.150.018.4 KB
Original Source
<!-- RAW PR DATA — Do not remove this comment block. AI uses this data to generate the polished release notes below. Re-run the script to refresh this data from git history. Generated: 2026-06-17T23:56:07Z by generate-release-notes.py version: 2.88.0 status: stable branch: release/2.88.0 diff: release/2.80.4..release/2.88.0 prs: 63 api: self=2.88.0/index.md;hb=2.8.2 PRs grouped by the preview they first shipped in (newest first). Render each milestone as a trailing "## <label> (<date>)" section per TEMPLATE.md, and merge them all for the top-level Highlights: ## Unreleased — not yet in a tagged preview (2 PRs) - Build stable of everything by @mattleibow in https://github.com/mono/SkiaSharp/pull/2034 - Update to Maui RC 4 by @mattleibow in https://github.com/mono/SkiaSharp/pull/2032 ## Preview 266 · 2.88.0 · 2022-05-11 · https://github.com/mono/SkiaSharp/compare/v2.88.0-preview.256...v2.88.0-preview.266 (4 PRs) - Build using .NET 6.0.300 public by @mattleibow in https://github.com/mono/SkiaSharp/pull/2031 - Don't try sign on forks by @mattleibow in https://github.com/mono/SkiaSharp/pull/1992 - Update to .NET MAUI RC 3 by @mattleibow in https://github.com/mono/SkiaSharp/pull/2029 - Try p/invoking to libdl.so.2 before libdl.so by @akoeplinger in https://github.com/mono/SkiaSharp/pull/2010 [community ✨] ## Preview 256 · 2.88.0 · 2022-04-20 · https://github.com/mono/SkiaSharp/compare/v2.88.0-preview.254...v2.88.0-preview.256 (1 PRs) - Building using .NET MAUI RC 2 by @mattleibow in https://github.com/mono/SkiaSharp/pull/2004 ## Preview 254 · 2.88.0 · 2022-04-13 · https://github.com/mono/SkiaSharp/compare/v2.88.0-preview.232...v2.88.0-preview.254 (3 PRs) - Update MAUI to RC 1 and use a macOS Monterey pool by @mattleibow in https://github.com/mono/SkiaSharp/pull/1986 - Use an older Xamarin.Android preview via the stable VS by @mattleibow in https://github.com/mono/SkiaSharp/pull/1993 - Update to macOS 11 by @mattleibow in https://github.com/mono/SkiaSharp/pull/1988 ## Preview 232 · 2.88.0 · 2022-03-04 · https://github.com/mono/SkiaSharp/compare/v2.88.0-preview.209...v2.88.0-preview.232 (5 PRs) - Update Maui to the later P14 by @mattleibow in https://github.com/mono/SkiaSharp/pull/1967 - Split tests and samples into a new pipeline by @mattleibow in https://github.com/mono/SkiaSharp/pull/1963 - Update MAUI to Preview 14 by @mattleibow in https://github.com/mono/SkiaSharp/pull/1965 - Use Python 3.x and Clang 12.x by @mattleibow in https://github.com/mono/SkiaSharp/pull/1959 - Generate Software Bill of Materials (SBOM) manifest by @mjbond-msft in https://github.com/mono/SkiaSharp/pull/1954 [community ✨] ## Preview 209 · 2.88.0 · 2022-02-18 · https://github.com/mono/SkiaSharp/compare/v2.88.0-preview.187...v2.88.0-preview.209 (6 PRs) - So many issues resolved by @mattleibow in https://github.com/mono/SkiaSharp/pull/1958 - Skip the preview feed if not on a preview .NET by @mattleibow in https://github.com/mono/SkiaSharp/pull/1957 - Try build without manually installing .NET Core by @mattleibow in https://github.com/mono/SkiaSharp/pull/1956 - Make use of the newer/better/faster/more-er 1ES build agents by @mattleibow in https://github.com/mono/SkiaSharp/pull/1946 - Force a single CPU on macOS/Linux by @mattleibow in https://github.com/mono/SkiaSharp/pull/1944 - Build with Maui Preview 13 by @mattleibow in https://github.com/mono/SkiaSharp/pull/1942 ## Preview 187 · 2.88.0 · 2022-01-27 · https://github.com/mono/SkiaSharp/compare/v2.88.0-preview.179...v2.88.0-preview.187 (2 PRs) - Update maui to Preview 12 by @mattleibow in https://github.com/mono/SkiaSharp/pull/1932 - [android] don't include .so files in class libraries by @jonathanpeppers in https://github.com/mono/SkiaSharp/pull/1895 [community ✨] ## Preview 179 · 2.88.0 · 2021-12-16 · https://github.com/mono/SkiaSharp/compare/v2.88.0-preview.178...v2.88.0-preview.179 (1 PRs) - Bumps to Uno 4.0 by @jeromelaban in https://github.com/mono/SkiaSharp/pull/1873 [community ✨] ## Preview 178 · 2.88.0 · 2021-12-15 · https://github.com/mono/SkiaSharp/compare/v2.88.0-preview.155...v2.88.0-preview.178 (9 PRs) - Update to Maui Preview 11 by @mattleibow in https://github.com/mono/SkiaSharp/pull/1890 - [Blazor] prevent infinite loop in SKCanvasView by @JensKrumsieck in https://github.com/mono/SkiaSharp/pull/1889 [community ✨] - Fix the Mac Catalyst build task Inputs/Outputs by @mattleibow in https://github.com/mono/SkiaSharp/pull/1865 - Replace HandleDictionary lock with a critical section under Windows by @toptensoftware in https://github.com/mono/SkiaSharp/pull/1817 [community ✨] - Never dispose the native statics by @mattleibow in https://github.com/mono/SkiaSharp/pull/1863 - Try to build faster on demand by @mattleibow in https://github.com/mono/SkiaSharp/pull/1859 - Work around enums not being blittable by @mattleibow in https://github.com/mono/SkiaSharp/pull/1857 - Try this again by @mattleibow in https://github.com/mono/SkiaSharp/pull/1843 - Update MAUI sample by @mattleibow in https://github.com/mono/SkiaSharp/pull/1851 ## Preview 155 · 2.88.0 · 2021-10-28 · https://github.com/mono/SkiaSharp/compare/v2.88.0-preview.152...v2.88.0-preview.155 (1 PRs) - Update all the things by @mattleibow in https://github.com/mono/SkiaSharp/pull/1842 ## Preview 152 · 2.88.0 · 2021-10-14 · https://github.com/mono/SkiaSharp/compare/v2.88.0-preview.150...v2.88.0-preview.152 (2 PRs) - Add some of the new APIs by @mattleibow in https://github.com/mono/SkiaSharp/pull/1828 - Clean up the publish for samples by @mattleibow in https://github.com/mono/SkiaSharp/pull/1827 ## Preview 150 · 2.88.0 · 2021-10-11 · https://github.com/mono/SkiaSharp/compare/v2.88.0-preview.145...v2.88.0-preview.150 (1 PRs) - Support ASP.NET Blazor Web Assembly Components by @mattleibow in https://github.com/mono/SkiaSharp/pull/1811 ## Preview 145 · 2.88.0 · 2021-09-28 · https://github.com/mono/SkiaSharp/compare/v2.88.0-preview.140...v2.88.0-preview.145 (3 PRs) - Bump Maui to RC 2 / P9 by @mattleibow in https://github.com/mono/SkiaSharp/pull/1815 - [android] eliminate lots of fields in Resource.designer.cs by @jonathanpeppers in https://github.com/mono/SkiaSharp/pull/1812 [community ✨] - Native Windows Symbols + HarfBuzzSharp.NativeAssets.* by @mattleibow in https://github.com/mono/SkiaSharp/pull/1797 ## Preview 140 · 2.88.0 · 2021-09-14 · https://github.com/mono/SkiaSharp/compare/v2.88.0-preview.139...v2.88.0-preview.140 (0 PRs) *(no PRs)* ## Preview 139 · 2.88.0 · 2021-09-12 · https://github.com/mono/SkiaSharp/compare/v2.88.0-preview.127...v2.88.0-preview.139 (6 PRs) - Fix the what the `IgnorePixelScaling` property works by @mattleibow in https://github.com/mono/SkiaSharp/pull/1804 - Build using the older gcc 6.2 and new llvm 10 compiler by @mattleibow in https://github.com/mono/SkiaSharp/pull/1806 - Update to WindowsAppSDK by @mattleibow in https://github.com/mono/SkiaSharp/pull/1800 - Switch to .NET Tool version of Cake by @mattleibow in https://github.com/mono/SkiaSharp/pull/1793 - Reduce the size of the artifacts by @mattleibow in https://github.com/mono/SkiaSharp/pull/1788 - Update MAUI to RC 1 by @mattleibow in https://github.com/mono/SkiaSharp/pull/1782 ## Preview 127 · 2.88.0 · 2021-08-20 · https://github.com/mono/SkiaSharp/compare/v2.88.0-preview.120...v2.88.0-preview.127 (3 PRs) - Add main PDB files to the packages by @mattleibow in https://github.com/mono/SkiaSharp/pull/1781 - Update HarfBuzz to 2.8.2 by @mattleibow in https://github.com/mono/SkiaSharp/pull/1766 - Add support for Xamarin.Forms on netcoreapp3.1 by @mattleibow in https://github.com/mono/SkiaSharp/pull/1774 ## Preview 120 · 2.88.0 · 2021-08-09 · https://github.com/mono/SkiaSharp/compare/v2.88.0-preview.61...v2.88.0-preview.120 (6 PRs) - Use the correct MacCatalyst targets file name by @mattleibow in https://github.com/mono/SkiaSharp/pull/1762 - Add Mac Catalyst support by @mattleibow in https://github.com/mono/SkiaSharp/pull/1760 - Split SkiaSharp package into smaller "Native Asset" packages by @mattleibow in https://github.com/mono/SkiaSharp/pull/1758 - Use Invoke for Actions by @mattleibow in https://github.com/mono/SkiaSharp/pull/1754 - Use the new Maui P7 by @mattleibow in https://github.com/mono/SkiaSharp/pull/1749 - [Wasm] Add support for emscripten 2.0.23 by @jeromelaban in https://github.com/mono/SkiaSharp/pull/1746 [community ✨] ## Preview 61 · 2.88.0 · 2021-07-12 · https://github.com/mono/SkiaSharp/compare/v2.80.4...v2.88.0-preview.61 (8 PRs) - Update .NET 6 by @mattleibow in https://github.com/mono/SkiaSharp/pull/1740 - Ensure that VS is set up correctly by @mattleibow in https://github.com/mono/SkiaSharp/pull/1736 - Protect NRE in .NET MAUI SKCanvasView by @jsuarezruiz in https://github.com/mono/SkiaSharp/pull/1734 [community ✨] - iOS requires that the view have a background by @mattleibow in https://github.com/mono/SkiaSharp/pull/1730 - Add .NET MAUI views (compat and handlers) by @mattleibow in https://github.com/mono/SkiaSharp/pull/1678 - Free up space by deleting samples as they build by @mattleibow in https://github.com/mono/SkiaSharp/pull/1721 - Add net6.0-* for the binding projects by @mattleibow in https://github.com/mono/SkiaSharp/pull/1707 - Add Mac Catalyst, use frameworks and move things into the gn files (develop edition) by @mattleibow in https://github.com/mono/SkiaSharp/pull/1681 --> <!-- Generated: 2026-06-18T00:00:00Z by claude-sonnet-4.5 -->

Version 2.88.0

MAUI and Mac Catalyst release · Released May 22, 2022 · NuGet · GitHub Release

API changes · SkiaSharp API diff · HarfBuzzSharp 2.8.2

Highlights

SkiaSharp 2.88.0 is a major platform release centered on .NET 6 and .NET MAUI. It adds first-class MAUI views, brings Mac Catalyst and ASP.NET Blazor WebAssembly components into the supported matrix, reshapes native packaging into smaller asset packs, and includes a long tail of fixes across Uno, Linux, Android, and browser scenarios.

Breaking Changes

  • Native assets are now split into smaller packages — Most applications can keep referencing SkiaSharp as before, but custom deployment flows may need to account for the new NativeAssets package layout. (#1758)

New Features

Platform

  • .NET MAUI views and handlers — Adds the initial SKCanvasView and related view support for .NET MAUI, with follow-up alignment through the MAUI preview and RC cycle. (#1678)
  • Mac Catalyst support — Brings Mac Catalyst into the native and managed support matrix, including the right targets and packaging updates. (#1681, #1760, #1762)
  • ASP.NET Blazor WebAssembly components — Adds dedicated Blazor component support for browser-hosted rendering. (#1811)
  • Broader .NET 6 platform coverage — Adds net6.0-* target frameworks for bindings and keeps Xamarin.Forms and Uno scenarios moving forward on newer stacks. (#1707, #1774, #1873)

Packaging & Distribution

  • Smaller NativeAssets packages — Splits the shipping model into leaner platform packages for better download size and deployment flexibility. (#1758)
  • Symbols and diagnostics packages — Adds Windows native symbols and ships main PDB files in the package set. (#1797, #1781)

API Surface

  • Additional 2.88 APIs — Starts exposing new APIs for the 2.88 line beyond the large platform work. (#1828)

Bug Fixes

  • More reliable Linux loading — Probes libdl.so.2 before libdl.so to work better across distros. ❤️ @akoeplinger (#2010)
  • Blazor and MAUI view stability — Prevents an infinite loop in Blazor SKCanvasView and guards against a .NET MAUI null-reference edge case. ❤️ @JensKrumsieck (#1889), ❤️ @jsuarezruiz (#1734)
  • Safer Windows synchronization — Replaces a global lock with a critical section in HandleDictionary under Windows. ❤️ @toptensoftware (#1817)
  • Sharper packaging behavior — Keeps Android class libraries from carrying unnecessary .so payloads. ❤️ @jonathanpeppers (#1895)
  • Rendering correctness — Fixes how IgnorePixelScaling is applied in affected views. (#1804)

Platform Support

PlatformWhat's New
🍎 AppleMac Catalyst support and continued MAUI/Apple alignment
🪟 WindowsWindows App SDK alignment, Uno 4.0 updates, safer handle synchronization
🤖 AndroidCleaner class library packaging
🌐 WebAssemblyBlazor components plus emscripten 2.0.23 support
📦 GeneralSmaller NativeAssets packages and shipped symbols

Community Contributors ❤️

ContributorWhat They Did
@akoeplingerImproved Linux libdl probing
@jeromelabanAdded emscripten 2.0.23 support and moved Uno forward to 4.0
@JensKrumsieckFixed a Blazor SKCanvasView infinite loop
@jonathanpeppersCleaned up Android .so packaging in class libraries
@jsuarezruizGuarded MAUI SKCanvasView against a null-reference edge case
@toptensoftwareReworked Windows handle synchronization

Unreleased

Final stabilization built the fully stable package set and moved the MAUI integration to RC 4.


Preview 266 (May 11, 2022)

Updated to .NET MAUI RC 3 and improved Linux native loading behavior.

Full Changelog


Preview 256 (April 20, 2022)

Advanced the release train to .NET MAUI RC 2.

Full Changelog


Preview 254 (April 13, 2022)

Aligned with .NET MAUI RC 1 and refreshed the Apple build environment.

Full Changelog


Preview 232 (March 4, 2022)

Continued the MAUI Preview 14 rollout while refreshing supporting toolchains.

Full Changelog


Preview 209 (February 18, 2022)

Moved the release forward with .NET MAUI Preview 13 and a round of build reliability fixes.

Full Changelog


Preview 187 (January 27, 2022)

Updated to MAUI Preview 12 and cleaned up Android class library packaging.

Full Changelog


Preview 179 (December 16, 2021)

Brought the Uno support story forward to Uno 4.0.

Full Changelog


Preview 178 (December 15, 2021)

Fixed a Blazor render loop, improved Windows synchronization, and aligned with MAUI Preview 11.

Full Changelog


Preview 155 (October 28, 2021)

This preview mostly refreshed dependencies and supporting infrastructure.

Full Changelog


Preview 152 (October 14, 2021)

Added more of the new 2.88 APIs and cleaned up sample publishing.

Full Changelog


Preview 150 (October 11, 2021)

Added ASP.NET Blazor WebAssembly component support.

Full Changelog


Preview 145 (September 28, 2021)

Updated to a newer MAUI preview and started shipping native symbol packages.

Full Changelog


Preview 140 (September 14, 2021)

No pull requests were first shipped in this preview.

Full Changelog


Preview 139 (September 12, 2021)

Fixed IgnorePixelScaling behavior and aligned the release with newer Windows App SDK and MAUI builds.

Full Changelog


Preview 127 (August 20, 2021)

Updated HarfBuzz, added Xamarin.Forms support on netcoreapp3.1, and shipped main PDB files.

Full Changelog


Preview 120 (August 9, 2021)

Added Mac Catalyst support, split the NativeAssets packages, and updated WebAssembly support.

Full Changelog


Preview 61 (July 12, 2021)

Introduced the first .NET MAUI views and the initial net6.0-* target support.

Full Changelog