Skip to content

1.0.0

Latest

Choose a tag to compare

@sohandotgit sohandotgit released this 06 Jul 07:50

ThinPath 1.0.0

A memory-first native SVG renderer for iOS, built directly on Core Graphics.

This is the first public release. ThinPath parses SVG into a flat, index-based intermediate representation and draws it straight to a CGContext — no node graph, no intermediate bitmaps, no third-party dependencies.

Highlights

  • Renders directly into any CGContext, or rasterizes to a CGImage.
  • Flat arena IR: parsed documents are contiguous arrays, not a heap of node objects — dropping a document frees a handful of arrays instead of walking a retain-cycle-prone node graph.
  • Shapes, groups, <use>/<symbol> instancing, and nested viewports.
  • Solid fills, linear/radial gradients, and <pattern> fills.
  • Clip paths, masks, opacity, and blending modes.
  • Basic <text> with system fonts, and embedded/referenced <image> with on-demand decoding.
  • Full SVG transform support and preserveAspectRatio fitting.
  • Zero third-party dependencies (the SwiftPM manifest depends on swift-docc-plugin, but only as a documentation command plugin — it never links into the library).

Requirements

  • iOS 13+
  • Swift 5.9+

Installation

.package(url: "https://github.com/sohandotgit/ThinPath.git", from: "1.0.0")

Not yet supported

SMIL/CSS animation, <filter> effects, scripting, and @font-face embedded fonts. Tracked for future releases.

Documentation

Full API reference, design docs, and examples: https://sohandotgit.github.io/ThinPath/docs/documentation/thinpath/