resvg-raqote 0.10.0

raqote backend for resvg.
Documentation
# raqote backend for resvg

`resvg` backend implementation using the [raqote] library.

**Warning**: the `raqote` library is still in development and pretty unstable.
You should prefer other backends.

This backend intentionally doesn't provide a C API.

## Build

Right now, this is the only backend that uses Rust-based 2D library,
therefore building process is fairly straightforward.

Sadly, you still need a C++ compiler to build [harfbuzz](https://github.com/harfbuzz/harfbuzz).

### on Windows using MSVC

Install `stable-x86_64-pc-windows-msvc` [Rust] target.

Build using `x64 Native Tools Command Prompt for VS 2017` shell:

```batch
set PATH=%userprofile%\.cargo\bin;%PATH%
rustup.exe default stable-x86_64-pc-windows-msvc

cargo.exe build --release
```

### on Windows using MSYS2

Install `stable-x86_64-pc-windows-gnu` [Rust] target.
And then:

```sh
pacman -S mingw-w64-x86_64-gcc
rustup default stable-x86_64-pc-windows-gnu

cargo build --release
```

You can use i686 target in the same way.

### on Linux

Install `harfbuzz` using your distributive's package manager.

On Ubuntu you can install it via:

```sh
sudo apt install libharfbuzz-dev
```

Build `resvg`:

```sh
cargo build --release
```

### on macOS

```sh
cargo build --release
```

## Runtime dependencies

`harfbuzz` on Linux. On other OS'es it will be built statically.

## Running resvg CLI

```sh
cargo run --release -- in.svg out.png
```

The resulting binary can be found at: `target/release/resvg-raqote`

## Running examples

A simple SVG to PNG converter:

```sh
cargo run --example minimal -- in.svg out.png
```

Render image using a manually constructed SVG render tree:

```sh
cargo run --example custom_rtree
```

Draw bounding boxes around all shapes on input SVG:

```sh
cargo run --example draw_bboxes -- bboxes.svg bboxes.png -z 4
```

## License

[MPLv2.0](https://www.mozilla.org/en-US/MPL/).


[raqote]: https://github.com/jrmuizel/raqote
[Rust]: https://www.rust-lang.org/tools/install