Announcement SkiaSharp .NET
Key Takeaway

SkiaSharp 4.148.0 is the first stable release of SkiaSharp v4 — a co-maintained, production-ready upgrade with a newer Skia engine, up to 24% faster rendering, cleaner APIs, and a predictable release cadence you can plan around.

SkiaSharp has powered cross-platform 2D graphics in .NET for over a decade. Today, it takes its biggest step forward in years.

SkiaSharp 4.148.0 is now available on NuGet — the first stable release of SkiaSharp v4.

Get SkiaSharp 4.148.0 on NuGet →

Read the full SkiaSharp 4.148.0 release notes and explore the new SkiaSharp website and interactive gallery. Check out the Microsoft SkiaSharp 4.0 announcement on DevBlogs.

Why It Matters

Why SkiaSharp Matters

If you have been building .NET apps that need to render — text, geometry, images, custom drawing surfaces — you have almost certainly been building on SkiaSharp, whether you knew it or not.

SkiaSharp wraps the open-source Skia engine and sits underneath .NET MAUI, WinUI 3, WebAssembly targets, and frameworks like Uno Platform. It is the reason a .NET developer can write a single rendering path and have it behave faithfully on iOS, Android, Windows, macOS, Linux, and the web. Pixel-perfect text, hardware-accelerated geometry, consistent color output — all of it flows through Skia.

For Uno Platform specifically, SkiaSharp is foundational. Our promise is that a single C# and XAML codebase produces pixel-accurate applications across every platform target. SkiaSharp is the rendering foundation that makes that promise real. That is why, alongside the .NET team at Microsoft, Uno Platform is a co-maintainer of SkiaSharp — and a significant contributor to making this v4 release happen.

That foundation matters more than ever right now. With Uno Platform Studio 3.0, we are enabling agentic workflows on the web and across any IDE or CLI — go from a prompt to a running cross-platform .NET app, in your browser, no install required. AI can scaffold the app, iterate the logic, and refine the structure. But what the user actually sees — every pixel, every transition, every rendered surface — that is SkiaSharp. It is the layer that makes "runs everywhere" mean something visually.

Co-Maintenance

What Co-Maintenance Means for the Uno Platform Community

Uno Platform engineering team has been working closely with .NET teams to move changes forward with SkiaSharp — helping with stabilizing APIs, adding variable font support, and benchmarking performance. For Uno Platform users, this co-ownership has practical consequences that go beyond the 4.0 release itself.

As co-maintainers, the Uno Platform engineering team has a direct, ongoing role in SkiaSharp's development and release process. Issues that affect Uno Platform users — rendering behavior on WebAssembly, performance regressions, API gaps relevant to cross-platform .NET development — now have a team with deep context actively working to address them. We are part of the process that produces fixes and improvements, not waiting on them.

It also means a faster turnaround on the kinds of Skia updates that matter to cross-platform developers. The gap between a new capability landing in the Skia engine and that capability becoming available in SkiaSharp has historically been measured in months or longer. With Uno Platform contributing actively as a co-maintainer alongside the .NET team, that gap will close significantly.

For developers building on Uno Platform, co-maintenance translates directly to better outcomes at the graphics layer:

  • Faster resolution of SkiaSharp issues that affect cross-platform .NET applications
  • More predictable release cadence for SkiaSharp updates and improvements
  • Direct representation of cross-platform rendering needs in SkiaSharp's development direction
  • Greater stability in the graphics layer that underpins every Uno Platform application
Microsoft

Part of a Broader Collaboration with Microsoft

The co-maintenance of SkiaSharp is one concrete output of the broader technology collaboration between Uno Platform and the .NET team at Microsoft announced last October. That collaboration spans multiple areas of the .NET platform, including Android bindings, AOT compilation improvements, and .NET 10 contributions.

SkiaSharp is where that collaboration is most directly visible to Uno Platform users and to the wider .NET ecosystem — focused engineering investment in shared infrastructure that benefits the broadest possible set of .NET developers.

What's New

What Is in SkiaSharp 4.0

This release rolls up all of the v4 preview work into one stable, shippable package. If you have been waiting for v4 to settle before upgrading, this is the release to move to.

A Better Engine — For Free

The native Skia engine is current through milestone m148: years of upstream rendering, codec, performance, and security improvements that benefit every app automatically, with no code changes required on your end. The highlights:

  • Sharper downscaled images — mipmap sharpening is now on by default
  • Automatic photo orientation — image codecs now respect Exif rotation metadata
  • More accurate colors — transfer functions for Rec.709, HLG, and PQ corrected to match industry standards
  • Broader performance gains — rendering operations across the board are modestly faster, with specific wins in noise shaders and canvas operations
  • Security hardened — modern compiler mitigations enabled across all platforms, all bundled native dependencies updated

That last one is worth pausing on. Security improvements that flow from upstream automatically, without you having to do anything — that is exactly what a well-maintained dependency should do.

New Capabilities

  • Variable fonts — full OpenType variable font axis control across SkiaSharp and HarfBuzzSharp. Query axes, set positions, and create typeface variants for weight, width, slant, or custom axes
  • Color font palettes — switch between OpenType CPAL palettes for emoji and icon fonts, or override individual glyph colors
  • Animated WebP encodingSKWebpEncoder now handles animated WebP output
  • Zero-copy stream conversionSKStream.GetData() for efficient stream handling

A Cleaner, More Correct API

v4 completes a migration that has been in progress for a while: legacy APIs are retired, and the surface is clean. Underneath, the object lifecycle was reworked so native singletons are properly reference counted — quietly fixing a whole class of use-after-free crashes that could occur when the garbage collector finalized managed wrappers during in-flight native calls.

The kind of fix you never see. Which is the point.

Faster Performance

A newer engine should not just do more — it should do it faster. In initial testing on the hardware-accelerated GPU backend, the work that dominates modern app UIs (elevated cards, drop shadows, layered surfaces) renders up to 24% faster on v4 than on the previous stable release. Comparing 3.119 against v4 over OpenGL, a busy dashboard of shadowed cards rose from 65 to 80 FPS, and a scrolling activity feed from 47 to 58 FPS. Scenes that do not lean on shadows — charts, text, vector maps — were already efficient and carry over unchanged. You get the upside with no downside.

Procedural Perlin-noise shaders also run about 6x faster on the CPU, a nice win for generative textures and effects.

For Uno Platform apps specifically, we are seeing rendering improvements of up to 30% in initial testing.

Modernized Infrastructure

The test suite moved to xUnit v3, builds run on reproducible Docker images, device and WebAssembly testing runs through DeviceRunners. The machinery is modern, and it makes the project easier to contribute to and maintain.

Under the Hood

Built a Little Differently

Here is something worth calling out about how v4 came together. SkiaSharp wraps an enormous Google C++ codebase — syncing upstream Skia milestones, auditing for CVEs, generating release notes and API diffs, keeping docs current — a lot of that work is now driven by agentic workflows.

The point is not the automation for its own sake. It is that human engineering time now goes to API design and correctness — exactly where it should be. And it is a big part of how the project keeps pace with Chrome's release train.

Want to see what is possible with the latest SkiaSharp? Check out SkiaFiddle — an interactive playground linked from the SkiaSharp gallery where you can experiment with SkiaSharp APIs directly in your browser.

Cadence

A Predictable Cadence Going Forward

One of the most important things v4 ships with is a release model you can plan around.

Going forward, SkiaSharp ships on a regular cadence in two channels that follow the upstream Skia milestones:

  • Stable channel — corresponds to Skia milestones in Chrome's Stable and Extended Stable channels
  • Preview channel — corresponds to the milestone in Chrome's Beta channel

If you build on SkiaSharp, you now know which versions are current and how fixes reach you. That predictability matters — especially for teams maintaining production applications.

What Is Next: SkiaSharp 4.150.0 Preview 2

The next preview is already available. SkiaSharp 4.150.0 Preview 2 is on NuGet now.

The headline in m150 is Graphite — the next-generation Skia GPU backend — alongside new image and color filter APIs, SkSL image filters, and more. If you want a look at where SkiaSharp rendering is heading, that is the place to start.

Try It

Try It in Uno Platform Today

Uno Platform ships with SkiaSharp 3.x by default. While experimental, to try the latest SkiaSharp 4.0 bits in Uno Platform apps, set the SkiaSharpVersion MSBuild property in the csproj of your Uno.Sdk-based application. Use 4.148.0 for the current stable release, or 4.150.0-preview.2.1 if you want to try the next preview:

<PropertyGroup>
    <!-- Stable -->
    <SkiaSharpVersion>4.148.0</SkiaSharpVersion>

    <!-- Next preview -->
    <!-- <SkiaSharpVersion>4.150.0-preview.2.1</SkiaSharpVersion> -->
</PropertyGroup>

That is all it takes to opt in. Give it a try against your application and share your feedback.

Live Event

Join Us: SkiaSharp 4.0 Live Event — Tomorrow

To mark the release, Uno Platform and the .NET team at Microsoft are hosting a live event dedicated entirely to SkiaSharp — tomorrow, June 30th, 11am–2pm ET.

The event will cover what is new in SkiaSharp 4.0, what the co-maintenance model looks like in practice, and what is ahead for SkiaSharp in the .NET ecosystem.

Where to watch:

  • Uno Platform channels on YouTube, X (Twitter), and LinkedIn
  • Microsoft .NET and .NET Foundation channels on Twitch

Register and get event details at platform.uno/skiasharp →

Resources

SkiaSharp is open source — contributions, issues, and feedback are always welcome at github.com/mono/SkiaSharp.

Cheers developers!