A new significant release of the SVG rasterization library has been released — resvg.
Key Changes:
- A completely new implementation of text rendering:
- Almost the entire stack from character to Bézier curve is now implemented in Rust:
font matching and fallback, TrueType parsing, clustering glyphs according to SVG rules (SVG text layout).
The exception is text shaping, for which
HarfBuzz. - Text will now be converted to Bézier curves before rendering.
This means that the rendering backend is no longer required to support text. - Support for bidirectional text (BIDI reordering). Example.
- Support for textPath. Example 1, example 2.
- Support for writing-mode (vertical text). Example.
- Correct support for word-spacing and letter-spacing. Example.
- Almost the entire stack from character to Bézier curve is now implemented in Rust:
- A new experimental backend — Raqote (special thanks to jrmuizel).
Raqote is a 2D graphics library written in Rust.
It is in the early stages of development, yet its capabilities are already sufficient for
use in resvg.
Its main advantage is that resvg can now be built with exactly one non-Rust dependency — HarfBuzz. - Support for shape-rendering, text-rendering, and image-rendering.
- Raster image rendering has been accelerated.
- The total number of tests has reached 1112.
The number of successfully passed tests for Inkscape and librsvg has dropped below 75%. - Many small fixes and improvements.
Testing results. Comparison table.
Source: linux.org.ru
