meo-canvas-cli 0.1.0

Command-line renderer for meo-canvas scene files.
meo-canvas-cli-0.1.0 is not a library.

meo-canvas-cli

Renders an encoded scene file to an image.

Usage

meo-canvas scene.mcs --format png --output out.png

Install it with cargo install meo-canvas-cli. The binary is named meo-canvas; the library crate of that name is the Rust API, and the two are separate things that share a word.

The input is the binary wire format meo-canvas-scene encodes — the same bytes the Node addon hands the renderer, so anything that can write a scene can drive this.

Build with --features net to resolve remote image URLs through a blocking client. Without it, a URL in a scene is an error, the same as for a Rust caller.

System libraries

This binary links Skia through meo-canvas-core, so on Linux it needs freetype and fontconfig from the system — at build time to link, and at run time to load.

Debian/Ubuntu   libfontconfig1 libfreetype6   (build: libfontconfig1-dev libfreetype-dev pkg-config)
RHEL/Alma/Rocky fontconfig freetype           (build: fontconfig-devel freetype-devel pkg-config)

cargo install needs the -dev/-devel packages; running what it produces needs the runtime ones. Installing only the first set builds successfully and then fails at load, which reads as a broken crate rather than a missing library.

pkg-config is the one to get right: Skia is built without embed-freetype, so rust-skia probes pkg-config and falls back to bare library names when the probe fails, silently — the error names freetype rather than the missing prober. cmake and nasm are also needed at build time, for libaom.

macOS and Windows need none of this: Skia uses CoreText and DirectWrite there.