Skip to main content

Runtimes

Main packages

RuntimePackageReference
CLI@lumis-sh/cli (lumis binary), lumis-cli on crates.ionpm
Rustlumisdocs.rs
ElixirlumisHexDocs
JavaScript@lumis-sh/lumisnpm
Browsers / CDN@lumis-sh/lumisnpm
Javalumis4jGitHub

@lumis-sh/lumis covers Node.js, Bun, Deno, and browsers. Node, the CLI and Elixir all run the same Wasmtime highlighting from lumis-wasm-runtime, so identical input produces identical output; browsers use web-tree-sitter.

Every dynamic runtime loads exact, integrity-checked parser WASM per language rather than shipping an all-language binary, downloading what a document turns out to need and persisting verified assets across process restarts. A host application can warm the parser store at startup without blocking it, and the standalone CLI can prepare the directory ahead of time.

Themes

RuntimePackageReference
JavaScript@lumis-sh/themesnpm

Integrations

RuntimeIntegrationPackageReference
JavaScriptReact@lumis-sh/reactnpm
JavaScriptmarkdown-it@lumis-sh/markdown-it-lumisnpm
JavaScriptrehype@lumis-sh/rehype-lumisnpm

WASM language packages

Dynamic parser grammars are published as self-contained language packages such as @lumis-sh/wasm-rust, @lumis-sh/wasm-javascript, and @lumis-sh/wasm-elixir. Each package keeps its parser, queries, aliases, and integrity metadata at one version so JavaScript, CLI, and Elixir load the same language definition.

Preset bundle packages are also available, such as @lumis-sh/wasm-bundle-web, @lumis-sh/wasm-bundle-web-extra, @lumis-sh/wasm-bundle-system, and @lumis-sh/wasm-bundle-backend.

  • package list: Languages
  • helper for npm parser packages in non-Node runtimes: withWasm() from @lumis-sh/lumis
  • helper for npm preset bundles in non-Node runtimes: withWasmBundle() from @lumis-sh/lumis
  • loading and resolver behavior: WASM and CDN
  • JavaScript runtime notes: JavaScript Runtime