Changelog

View Source

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

[0.2.0] - 2025-09-28

Added

  • Scene-level options in render/2 (aa/background/font) and per-element aa: support across helpers.
  • New UI helpers: linear_gradient_rect, radial_gradient_circle, chip, paragraph, and real text with font loading.
  • Kitchensink example refactor: palette, balanced header, system meters with percentages, and split analytics into non-overlapping subplots (trend, scatter, OHLC).

Fixed

  • Anti-aliasing now works for circles (Rust NIF fill_circle uses MSAA samples); visuals are smoother.
  • Consistent AA pass-through in named-property helpers (grid/line_chart/candle_chart/etc.).

Changed

  • README updated with accurate run commands and Hex badge.

[0.1.0] - 2025-09-28

Added

  • Minimal, fully working Skia backend via Rustler NIF producing real WEBP binaries (in-memory, zero-FS path).
  • Public API facade (CanvasCraft) with create_canvas/2-3, export_webp/1-2, and export_raw/1.
  • Declarative DSL (CanvasCraft.Scene) with positional and named properties, including per-element antialiasing.
  • Shapes and primitives: clear, rect, circle, panel, donut segment, grid, scatter, progress bar.
  • Chart helpers: line chart and candle chart; text helpers: text_bar.
  • Capability discovery (CanvasCraft.Capabilities).
  • Reference backend for fast tests and benchmarks.
  • Examples: earth_planet and kitchensink (1080p dashboard) using the declarative DSL.
  • Benchmarks for draw ops, images/filters, and in-memory encoding.

Changed

  • CI runs formatting, Credo, Dialyzer, tests, and non-blocking benchmarks.

Notes

  • Requires Rust toolchain for building the NIF.