Split web/ into senbei-wasm crate + static assets

The Rust bindings move from web/src to a top-level senbei-wasm crate (still
outside the workspace, own Cargo.lock), matching the other senbei-* crates.
web/ keeps only the static frontend; wasm-pack emits the JS/wasm package into
web/pkg/ via --out-dir. JS glue renamed senbei_web -> senbei_wasm with the
crate.
This commit is contained in:
2026-08-30 22:44:15 +08:00
parent f80749ffd6
commit 0c3f29f93a
13 changed files with 707 additions and 33 deletions
+4 -3
View File
@@ -8,8 +8,9 @@ Senbei is a static unpacker for Crackproof-protected PE files: a Cargo
workspace with a pure, panic-free, no-I/O unpacker core (`senbei-pe/`, built
on `senbei-crypto/`), an il2cpp metadata de-obfuscator (`senbei-metadata/`),
filesystem/CLI orchestration (`senbei-io/`), the `senbei` binary
(`senbei-cli/`), and a WebAssembly browser frontend (`web/`, outside the
workspace). Read `docs/design.md` first.
(`senbei-cli/`), WebAssembly bindings (`senbei-wasm/`, outside the workspace;
builds into `web/pkg/`), and the static browser frontend assets (`web/`).
Read `docs/design.md` first.
## Commands
@@ -18,7 +19,7 @@ cargo build --release :: CLI (default member: senbei-cli)
cargo test --release --workspace :: full suite (golden corpus: samples/, git-ignored)
cargo clippy --workspace --all-targets -- -D warnings
cargo fmt --all
cd web && wasm-pack build --target web --release :: browser build
cd senbei-wasm && wasm-pack build --target web --release --out-dir ../web/pkg :: browser build
```
The `samples/` corpus is user-managed and absent on CI; without it the