Skip to content

fix: exclude wasi from js-specific build deps#986

Merged
zxch3n merged 1 commit into
loro-dev:mainfrom
avborup:main
May 22, 2026
Merged

fix: exclude wasi from js-specific build deps#986
zxch3n merged 1 commit into
loro-dev:mainfrom
avborup:main

Conversation

@avborup
Copy link
Copy Markdown
Contributor

@avborup avborup commented May 22, 2026

Problem: loro-internal doesn't compile to WASI due to JS-specific timestamp bindings (using Date), along with a JS feature for getrandom. In my case, it prevents my Loro-based project from running via WASI/WIT.

Seems like a similar issue has come up before for Emscripten in #966. This PR does the same fix as for Emscripten, relying on native/WASI capabilities instead. This also fixes the build-side of the existing #881.

First time contributing to this project, so LMK if more tests should be run. I've done the testing below (heavily inspired by #966).

Compile / target checks

  • cargo check -p loro-internal
  • cargo check -p loro-internal --target wasm32-unknown-emscripten
  • cargo check -p loro --target wasm32-unknown-emscripten
  • cargo check -p loro-internal --target wasm32-wasip1
  • cargo check -p loro --target wasm32-wasip1
  • cargo check -p loro --target wasm32-wasip2
  • cargo check -p loro-internal --target wasm32-unknown-unknown
  • cargo check -p loro-internal --target wasm32-wasip2

Dependency isolation

  • cargo tree -p loro --target wasm32-unknown-emscripten -e normal -i wasm-bindgen, no wasm-bindgen
  • cargo tree -p loro-internal --target wasm32-wasip1 -e normal -i wasm-bindgen, no wasm-bindgen
  • cargo tree -p loro-internal --target wasm32-unknown-unknown -e normal -i wasm-bindgen, has wasm-bindgen present

Browser WASM package pipeline (from crates/loro-wasm)

  • pnpm exec deno run -A ./scripts/build.ts release
  • pnpm exec rollup -c
  • pnpm exec deno run -A ./scripts/post-rollup.ts
  • node --expose-gc ./node_modules/vitest/vitest.mjs run
  • pnpm exec tsc --noEmit
  • deno test -A from crates/loro-wasm/deno_tests

Timestamp smoke tests

  • Node CJS smoke via crates/loro-wasm/nodejs/index.js
  • Deno smoke via crates/loro-wasm/web/index.js

@zxch3n zxch3n merged commit eb9c18a into loro-dev:main May 22, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants