A lightweight web app for observing how your system generates repeated
keydown events when multiple keys are held simultaneously. Use it to compare
repeat behavior across keyboards, browsers, and operating systems.
Once this repository is published to GitHub Pages the site will be available at:
https://<your-github-username>.github.io/KeyboardTesterWasm/
(Replace <your-github-username> with the account or organization that owns the
repository.)
The interface lives in the docs/ folder so it can be published with
GitHub Pages using the “Deploy from a branch” option targeting the main branch
and /docs directory. All interaction logic now runs inside a Rust WebAssembly
module that is embedded into the page as base64 text so no binary artifacts need
to be committed.
Install wasm-pack if you do
not already have it:
cargo install wasm-packCompile the Rust crate under wasm/ to WebAssembly outputs inside
docs/pkg:
wasm-pack build wasm --target web --out-dir docs/pkg --releaseThen convert the generated .wasm file into the embedded base64 module and
remove the binary artifact:
./scripts/embed-wasm.shNote:
wasm-packis configured to skipwasm-optso the build works in minimal environments. If you have Binaryen installed you can remove that override fromwasm/Cargo.tomlto enable additional optimizations.
Serve the repository root with any static file server and open
http://localhost:8000/docs in a browser:
python3 -m http.server 8000- Held keys panel – shows which keys are currently pressed.
- Repeat pattern – displays the order of recent repeated
keydownevents plus a running tally per key. - Event timeline – logs every
keydownandkeyupevent with timestamps and inter-event deltas to help you detect rotation patterns or biases.
Use the Pause capture toggle to temporarily stop logging without resetting existing data, or Clear log to reset the session.