Packages

This section gives package-by-package coverage for every shippable library NuGet in the repository.

Packaged tools such as Svg.Skia.Converter and svgc stay documented under Samples and Tools.

Runtime packages

Package Start here when Guide
Svg.Skia You want the main SkiaSharp runtime renderer, export helpers, hit testing, shared interaction, animation playback, or Android VectorDrawable support. Svg.Skia
Svg.Skia.JavaScript You explicitly want SVG script execution through the optional Jint-backed SKSvg bridge. Svg.Skia.JavaScript
Svg.Animation You want the shared SMIL timing engine, animation state evaluation, or host playback backend contracts without taking the full UI package surface. Svg.Animation
Svg.SceneGraph You want the retained scene graph, scene nodes, or lower-level compilation layer that sits between the SVG model and final rendering. Svg.SceneGraph
Svg.Model You need the intermediate drawable and picture model for inspection, mutation, or custom pipelines. Svg.Model
Svg.Custom You want the underlying SVG DOM and parser that the renderer consumes, including animation elements. Svg.Custom
ShimSkiaSharp You need a cloneable command-model equivalent of key SkiaSharp drawing primitives. ShimSkiaSharp

UI packages

Package Start here when Guide
Svg.Controls.Skia.Uno You want Uno Platform SVG controls backed by Svg.Skia, the live Skia canvas, and host-driven animation playback. Svg.Controls.Skia.Uno
Svg.Controls.Skia.Maui You want .NET MAUI SVG controls backed by Svg.Skia, SKCanvasView, reusable sources, and host-driven animation playback. Svg.Controls.Skia.Maui
Svg.Controls.Skia.Avalonia You want the richest Avalonia SVG integration, backed by Svg.Skia, real SkiaSharp.SKPicture output, and retained native-composition playback where supported. Svg.Controls.Skia.Avalonia
Svg.Controls.Avalonia You want the same high-level Avalonia SVG concepts but rendered through the Avalonia drawing stack. Svg.Controls.Avalonia
SvgML.Avalonia You want to author SVG markup inline in Avalonia XAML, including native controls hosted through foreignObject, and still render it through the shared Svg.Skia pipeline. SvgML.Avalonia
SvgML.Maui You want to author SVG markup inline in .NET MAUI XAML, including native controls hosted through foreignObject, and render it through the shared Svg.Skia pipeline. SvgML.Maui
SvgML.Uno You want to author SVG markup inline in Uno Platform XAML, including native controls hosted through foreignObject, and render it through the shared Svg.Skia pipeline. SvgML.Uno
Skia.Controls.Avalonia You want reusable Avalonia controls and IImage wrappers for raw SkiaSharp content, with or without SVG. Skia.Controls.Avalonia

Editor packages

Package Start here when Guide
Svg.Editor.Skia.Avalonia You want the full interactive editor workspace and Skia-backed canvas extracted from AvalonDraw. Svg.Editor.Skia.Avalonia
Svg.Editor.Avalonia You want reusable side panels, standalone editor views, and dialog abstractions without the default workspace. Svg.Editor.Avalonia
Svg.Editor.Skia You want selection math, path editing, align/distribute helpers, and editor overlay rendering for your own surface. Svg.Editor.Skia
Svg.Editor.Svg You want SVG document mutation services, property models, and resource-browser data structures. Svg.Editor.Svg
Svg.Editor.Core You want host-agnostic editor session, settings, outline nodes, artboards, clipboard, and history state. Svg.Editor.Core

Generated-code packages

Package Start here when Guide
Svg.CodeGen.Skia You want to turn the intermediate picture model into checked-in or pipeline-generated C# code. Svg.CodeGen.Skia
Svg.SourceGenerator.Skia You want .svg assets turned into generated Picture classes during the build. Svg.SourceGenerator.Skia

Choosing quickly

  • Choose Svg.Skia for direct runtime rendering, export, shared interaction, and animation playback.
  • Choose Svg.Skia.JavaScript only when SVG script execution is required; Svg.Skia keeps JavaScript disabled and unreferenced by default.
  • Choose Svg.Animation when the main task is SVG timing, host backend selection, or animation-controller integration rather than the full rendering surface.
  • Choose Svg.SceneGraph when you need retained compiled scene nodes and bounds instead of only the intermediate model or the final Skia output.
  • Choose Svg.Controls.Skia.Uno for Uno Platform usage on the Skia-backed path with host-driven animation playback.
  • Choose SvgML.Uno when the SVG itself should live in Uno XAML pages or controls instead of an external asset file, including native Uno controls placed by SVG foreignObject.
  • Choose Svg.Controls.Skia.Maui for .NET MAUI usage when the SVG already exists as an external asset or source string and should render through SKCanvasView.
  • Choose Svg.Controls.Skia.Avalonia for interactive Avalonia usage on the Skia-backed path, especially when retained native composition matters.
  • Choose SvgML.Avalonia when the SVG itself should live in Avalonia XAML resources, templates, or views instead of an external asset file, including native Avalonia controls placed by SVG foreignObject.
  • Choose SvgML.Maui when the SVG itself should live in .NET MAUI XAML pages or controls instead of an external asset file, including native MAUI controls placed by SVG foreignObject.
  • Choose Svg.Editor.Skia.Avalonia when you want a reusable SVG editor instead of only a viewer/control package.
  • Choose Svg.Editor.Avalonia, Svg.Editor.Skia, Svg.Editor.Svg, and Svg.Editor.Core when you need only parts of that editor stack.
  • Choose Svg.Controls.Avalonia for Avalonia drawing-context integration without the SKSvg runtime surface.
  • Choose Svg.Model and ShimSkiaSharp when the main task is inspection, transformation, or code generation rather than direct display.
  • Choose Svg.CodeGen.Skia or Svg.SourceGenerator.Skia when startup cost should move from runtime to build time.