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 aCGImage. - 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
preserveAspectRatiofitting. - 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/