Getting Started

Installation

Sätteri ships as a regular npm package. The Rust core is precompiled to native binaries via napi-rs, so you don't need a toolchain to use it.

Install

pnpm add satteri
npm install satteri
yarn add satteri
bun add satteri

Supported runtimes

Sätteri ships native binaries for:

  • macOS (Apple Silicon and Intel)
  • Linux (x86_64, glibc)
  • Windows (x86_64)

Anything else (Linux arm64 or musl, browsers, edge runtimes) falls back to a WASI build.

Browser usage

In a browser bundle, the WASI build replaces the native binding. It ships as a separate optional package, @bruits/satteri-wasm32-wasi, marked cpu: wasm32 so native installs stay lean. Package managers skip mismatched architectures by default, so you have to opt in.

With pnpm, add the wasm32 architecture in pnpm-workspace.yaml:

supportedArchitectures:
  cpu:
    - current
    - wasm32

Yarn exposes the same supportedArchitectures setting in .yarnrc.yml. For other package managers, see napi-rs's WebAssembly guide.

The WASI runtime also needs SharedArrayBuffer, so the page must be cross-origin isolated, using the following headers:

Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Embedder-Policy: require-corp

See napi-rs's server configuration guide for more information.

Using with Vite

vite-plugin-satteri lets you import .md and .mdx files directly in your Vite project. See Usage with Vite for more information.

Versioning

Sätteri is pre-1.0, so expect breaking changes on minor version bumps. Every release is documented in the CHANGELOG on GitHub.