finds.dev← search

// the find

AkiChase/scrcpy-mask

★ 1,011 · Rust · Apache-2.0 · updated Jun 2026

A Scrcpy client in Rust, Bevy and React, aimed at providing mouse and key mapping to control Android device, similar to a game emulator

A desktop client for scrcpy that adds game-emulator-style key and mouse mapping on top of Android screen mirroring. Built on Bevy (the game engine) for the input/rendering layer and React for the configuration UI, which is an unusual but functional split. The target audience is people who want to play mobile games on a PC with keyboard/mouse controls without rooting the device.

The Bevy migration in v0.7 is a solid architectural call — using a game engine for something that needs frame-accurate input handling and custom rendering (YUV shader in assets/shaders/yuv_video.wgsl) makes more sense than fighting a general-purpose UI framework. The mapping system is genuinely thorough: direction pads, FPS fire modes, cast-spell controls, multi-tap, and randomized touch offsets to avoid pattern detection are all first-class features, not afterthoughts. External control via HTTP API and WebSocket is a nice escape hatch for automation. The custom scrcpy-mask-server fork shows the author understands the protocol well enough to extend it rather than just wrapping it.

Documentation is explicitly listed as a missing checkbox in the README, which tracks — the scripting system (scripts-help.md) and build process (build-help.md) are documented, but there's no explanation of the overall architecture or how Bevy and React actually communicate. The tech stack is a maintenance liability: Rust + Bevy + React + a forked server binary means four things to keep in sync, and Bevy's own API stability between minor versions is notoriously disruptive. Game controller support is gated behind sponsorship, which is a reasonable personal project boundary but limits adoption for anyone who wanted a full emulator replacement. The original Tauri+Vue branch being abandoned without migration guidance leaves early adopters stranded.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →