refactor: separate application-specific wasm tooling

Merged
JL
1mo ago
+2032-29019

unwasm had accumulated a WhatsApp-specific Wasmtime host, VoIP probes and MLOW derivation recipes alongside the general decompiler. This removes that application layer from the workspace: unwasm-core remains a WebAssembly-to-Rust library with wasmparser as its only dependency, while the WhatsApp oracle moves to its consumer.

The remaining repository tasks are native cargo xt commands. External regression captures are restored through the commit-pinned wa-store API introduced by oxidezap/whatspec#49, so this repository no longer owns HTTP, archive, codec or protocol logic.

Validation:

  • cargo test --workspace
  • cargo clippy --workspace --all-targets -- -D warnings
  • cargo tree -p unwasm-core --depth 1 shows only wasmparser
  • fresh six-capture corpus restore with size/SHA-256 verification
  • CI build/tests plus real capture corpus: https://github.com/oxidezap/unwasm/actions/runs/33982898581

Summary by cubic

Separates the WhatsApp-specific Wasmtime oracle, VoIP probes, and MLOW derivation recipes from this workspace. unwasm-core remains a pure WebAssembly-to-Rust decompiler with wasmparser as its only dependency; the WhatsApp oracle moves to its consumer. The remaining repository tasks are native cargo xt commands, kept in tools/xtask so network tooling stays out of decompiler builds, and external regression captures are restored through the commit-pinned wa-store API with size and SHA-256 verification.

Migration

  • Replace any use of scripts/fetch-captures.sh or the other removed Python/Bash tools with cargo xt fetch-captures.

Summary by CodeRabbit

  • New Features

    • Added cargo xt commands for restoring WebAssembly captures and calculating SHA-256 hashes.
    • Capture restoration now uses pinned content identities for more reproducible results.
    • Added a convenient Cargo alias for running repository tasks.
  • Changes

    • The workspace now focuses on the general WebAssembly-to-Rust pipeline; the separate runtime and related diagnostic tooling are no longer included.
    • Updated CI, documentation, and tests to use cargo xt fetch-captures.
    • Added ignore rules for generated cache and Python files.