Version 4.151.0
Skia m151 and performance wins · NuGet (prerelease)
API changes · SkiaSharp API diff · HarfBuzzSharp API diff
Highlights
SkiaSharp 4.151.0 upgrades to Skia m151 and delivers a sweep of allocation-free hot-path improvements. This release eliminates several per-call heap allocations in HarfBuzzSharp and SKShaper, adds ReadOnlySpan overloads to SKColor hex parsing, and fixes a WASM build regression. It also removes the last unsafe modifier from GRContextOptions.
Breaking Changes
None in this preview line.
Engine
- Skia upgraded to milestone m151 — The bundled Skia engine is now built from chrome/m151, bringing upstream rendering bug fixes and improvements across all platforms. (#4294, #4312, #4382)
- WASM build: SK_BUILD_FOR_WASM redefinition warning fixed — A macro redefinition in the Skia submodule caused a build warning (and potential errors) for WASM targets. The submodule has been bumped to resolve it. — ❤️ @ramezgerges (#3788)
API Surface
- SKColor hex parsing with ReadOnlySpan
overloads — SKColor.Parse and TryParse now accept ReadOnlySpanin addition to string, avoiding string allocations in hot paths that parse color values. (#4345) - unsafe modifier removed from GRContextOptions — The unnecessary unsafe modifier on GRContextOptions has been removed, cleaning up the public API surface without any behavioral change. (#3991)
Lifecycle & Internals
- HarfBuzzSharp.Buffer.AddUtf8(string) is now allocation-free — UTF-8 encoding is now done via a pooled buffer, eliminating the per-call byte array allocation when adding text to a HarfBuzz shaping buffer. (#4376)
- HarfBuzzSharp.Tag.Parse and SKFourByteTag.Parse no longer allocate per call — Both Parse methods previously allocated a char[4] on every call to read the four-byte tag. They now use stack memory, removing the allocation. (#4408, #4396)
- SKShaper glyph results read via zero-copy spans — Glyph result arrays from the native shaper are now accessed through zero-copy spans instead of marshalled copies, reducing allocation and improving throughput in text shaping. (#4388)
HarfBuzzSharp 14.2.1
HarfBuzzSharp 14.2.1 carries two performance improvements in this release: allocation-free AddUtf8 encoding and a stack-allocated Tag.Parse, both eliminating per-call heap allocations in shaping hot paths.
Community Contributors ❤️
Thank you to everyone who contributed to this release!
| Contributor | Contributions |
|---|---|
| @ramezgerges | Golden-image test harness and Uno sample contributions (#3788, #4340) |
Preview 2 (July 14, 2026)
Preview 2 delivered the full performance sweep: allocation-free HarfBuzz buffer encoding, zero-copy span shaper results, tag parse fixes, and SKColor span overloads. It also merged the second round of chrome/m151 upstream bug fixes.
Preview 1 (July 2, 2026)
Preview 1 opened the 4.151 line with the Skia m151 milestone upgrade, the WASM submodule fix, and the GRContextOptions unsafe cleanup.