Skip to content

SiglumProject/busytex

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,972 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

busytex — TeX Live 2026 → WebAssembly

SiglumProject fork of busytex. Compiles TeX Live 2026 into a single multi-engine WebAssembly module (via Emscripten), plus a static x86_64-linux binary (via glibc) used as the build-time install-tl helper.

Engines compiled into the binary: xetex, pdftex, luahbtex, bibtex8, xdvipdfmx, makeindex, and the kpathsea tools (kpsewhich, kpsestat, kpseaccess, kpsereadlink).

This repo is the engine build for the @siglum/engine superproject, where it lives as the busytex submodule. It produces busytex.wasm and the packaged texlive-basic.data; the superproject splits those into browser bundles and serves them to the siglum runtime (see the superproject's docs/building.md). No prebuilt release artifacts are published here — build them with ./build-wasm.sh.

Building

The build is driven by ./build-wasm.sh, which runs each stage in a container. The pipeline (wasm/all) builds the native helper and the WASM binary inside emscripten/emsdk:3.1.43; the standalone native command uses ubuntu:22.04.

Prerequisites: Podman, Bun (for bundle splitting), and ~10 GB free disk for the TeX Live ISO.

./build-wasm.sh all      # full pipeline: wasm → texlive → formats → package → bundles

Individual stages (./build-wasm.sh with no args lists them all):

./build-wasm.sh wasm     # native + WASM binaries → build/wasm/busytex.{wasm,js}
./build-wasm.sh texlive  # install TeX Live packages via install-tl
./build-wasm.sh formats  # regenerate .fmt files with the WASM binary
./build-wasm.sh package  # create build/wasm/texlive-basic.data
./build-wasm.sh bundles  # split into browser bundles (in the superproject)

To bump the TeX Live version, edit the URLs at the top of the Makefile. The full procedure is documented in the superproject's docs/building.md and docs/upgrading-texlive.md.

Upstream

Forked from busytex/busytex — see upstream for the general roadmap and contribution ideas.

License

MIT

About

TexLive 2026 programs bundled into a single static binary for x86_64-linux / WASM

Topics

Resources

Stars

Watchers

Forks

Contributors

Languages

  • Makefile 37.1%
  • JavaScript 15.9%
  • Python 15.8%
  • Shell 12.7%
  • C 12.4%
  • HTML 3.9%
  • Other 2.2%