# linebender/tiny-skia

A tiny Skia subset ported to Rust

Repository: https://github.com/linebender/tiny-skia
Canonical: https://ross.abutalabs.com/products/tiny-skia
Language: Rust
License: BSD-3-Clause
License Family: permissive
Last push: 2026-08-20T12:48:05+00:00

## Health v2 (maintenance only)
Score: 76/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 98, release rhythm 35, longevity 100
- inputs: {"age_days": 2205, "days_push": 13, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: no_releases
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1627, forks 97 (observed 2026-08-28T04:05:13.210087+00:00)

## What it is
tiny-skia is a minimal, CPU-only 2D rendering library for Rust, ported from a subset of Google's Skia. It supports common 2D operations like filling, stroking, gradients, clipping, and image blending, with a focus on rendering quality, speed, and small binary size.

## Use cases
- render 2D shapes and images in Rust without heavy C++ dependencies
- draw filled and stroked paths with gradients or patterns
- generate PNG images programmatically in Rust
- embed a lightweight raster renderer in a GUI or SVG renderer
- replace Skia or cairo with a small pure-Rust 2D graphics library
- blend and composite images with clipping in a Rust application

## When to choose
- you need a small, fast, pure-Rust 2D raster renderer with minimal build complexity
- you want Skia-quality CPU rendering without Skia's huge binary and toolchain requirements
- you're building an SVG renderer or similar tool that doesn't need text rendering
- binary size and compile time matter for your project

## When to avoid
- you need text rendering, which is not supported
- you need GPU-accelerated rendering or output formats like SVG or PDF
- you need maximum rendering performance, since it is 20-300% slower than Skia
- you need a full-featured graphics stack like Qt or cairo

## Facets
- artifact type: library
- maturity: active
- function: graphics, image-processing
- domain: graphics, web-development, developer-tools
- platform: rust, cross-platform
- tags: 2d-graphics, rasterization, skia-port, cpu-rendering, png, canvas

## Member repositories
- linebender/tiny-skia (main) score 76

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:05:13.210087+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T03:48:25.513313+00:00, confidence not recorded.
  - readme: https://github.com/linebender/tiny-skia (fetched 2026-08-28T04:05:13.210087+00:00, sha 14ecd2c8c4ca)
  - registry_crates: https://crates.io/api/v1/crates/tiny-skia (fetched 2026-08-29T11:21:07.400695+00:00, sha af45309b3947)
- Data as of 2026-08-30T08:39:29.467469+00:00.
