Table of Contents

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 ReadOnlySpan in 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.

Full changelog

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.

Full changelog