← Back to all sparks
S

string2path

DEVOPS
Velocity0.0

Rendering Font into data.frame

A Rust-backed glyph-to-path converter swapped font engines and picked up variable fonts.

typographyrustfont-renderingdata-visualizationcran-packaging
Current state
string2path turns text rendered in a font into data frames of path, fill or stroke coordinates that R can plot directly. The 0.3.0 release migrated the underlying Rust stack to fontique and skrifa, which brought variable font support and let font_weight accept numeric values, at the cost of dropping WASM. The 0.3.1 patch that followed is entirely build fixes for Intel macOS and link-time optimization flags.
Where it's heading
Most of this package's release history is the cost of shipping Rust through CRAN — ARM Linux build errors, crate updates, deployment target mismatches on M1, installations without shared libraries, and repository policy compliance. The feature work that does land tracks font technology rather than R-side API design: partial COLRv1 color emoji in 0.2.0, variable fonts in 0.3.0. The maintainer is also candid about correcting earlier mistakes, having removed a path_id column after concluding its calculation had never been right.
Prediction
Expect the skrifa migration to keep paying out in font format coverage, with COLRv1 clip and layer composition the obvious gap now that a more capable backend is in place.

Recent moves

  1. 3mo ago

    Intel macOS and link-time optimization build fixes

    Two build fixes covering Intel macOS and the case where -flto flags reach CFLAGS, shipped eight days after 0.3.0. Routine fallout from distributing a Rust-backed package across CRAN's build matrix.

    View source ↗
  2. 4mo ago

    Font backend migrates to skrifa, unlocking variable fonts

    ⚡ SPARK

    The package changes engines: fontique and skrifa replace the previous Rust font stack, bringing variable font support and numeric font weights while dropping WASM. It closes a long-open issue and is the first release in years where the capability moved rather than the build system.

    View source ↗
  3. 1y ago

    Fill rule regression and CRAN subdirectory check

    Fixes a regression in fill rule handling and addresses a new CRAN check on compiled code in subdirectories. Maintenance in the year-long gap before the backend migration.

    View source ↗
  4. 1y ago

    Partial COLRv1 emoji support and long-standing outline fixes

    Adds partial support for COLRv1 color emoji fonts while discarding clip and layer composition data, and clears up several older errors: string2fill() and string2stroke() had been silently behaving as string2path() when passed a file path, outlines now agree across the three functions, and the path_id column was removed after the maintainer concluded its calculation had never been correct.

    View source ↗
  5. 1y ago

    Maintenance release for CRAN repository policy

    A compliance-only release with no described functional change, one of several in this package's history driven purely by CRAN requirements.

    View source ↗
  6. 2y ago

    Build error on ARM Linux fixed

    A maintenance release fixing an ARM Linux build failure. Representative of the platform-by-platform build burden that dominates this feed.

    View source ↗