Skip to content

Build from Source

Build nfc-keyboard-emulator from the GitHub repository if you want to inspect the code, contribute, or produce your own binary.

ToolVersion
Ruststable (via rustup)
Node.js20 or later

Install the Tauri CLI and all JavaScript dependencies after cloning:

Terminal window
npm ci

Starts the Vite dev server and the Tauri shell with live reload:

Terminal window
npm run tauri dev
Terminal window
npm run tauri build

Output bundles are written to src-tauri/target/release/bundle/. The exact formats depend on the platform (.dmg / .app on macOS; .msi / .exe on Windows).

Terminal window
npm test

This runs the frontend unit tests with Vitest.

For the Rust backend:

Terminal window
cd src-tauri && cargo test && cargo clippy -- -D warnings && cargo fmt --check

A hardware smoke test (requires a physical 13.56 MHz card reader with a card) runs behind an environment flag:

Terminal window
NFC_HW_TEST=1 cargo test --manifest-path src-tauri/Cargo.toml reader_pcsc::hw_tests -- --ignored --nocapture

An unsigned macOS build may require a one-time right-click → Open to bypass Gatekeeper. See Installation for details.