The PathKit library lets you use Skia's feature-rich PathOps API in the browser.

Compiling the source

Compiling with GN

Get a compiled Enscriptem SDK in your path. This is easiest done by running //tools/git-sync-deps which downloads and then runs //bin/activate-emsdk.

To compile a production WASM build to //out/pathkit:


Add --help for more options.

Compiling with Bazel

To compile a production WASM build to //bazel-bin/modules/pathkit/pathkit:

bazelisk build //modules/pathkit:pathkit --config=ck_full_webgl2_release

A debug build:

bazelisk build //modules/pathkit:pathkit --config=ck_full_webgl2_debug


Running example page locally:

# First build PathKit
make release
# Then run a local test server
make local-example

Then follow messages to navigate the browser to the example page.

Automated tests

Testing the GN build

make release
make npm
npm ci
make test-continuous

Testing the Bazel build

make debug-bazel
make npm-bazel
npm ci
make test-continuous

Deploying to npm

NOTE: The deployment steps use the GN build.

# Build the release version for both asmjs and WASM
# These binaries will be placed in the proper places of npm-*/bin
make npm

# In each npm- subdirectory, run:
npm version minor (or patch or major)
npm login --registry
npm publish