This is a side-project writen to learn Rust and therefore likely contains numerous issues, lacks in performance, and may have security or availability risks.
As a general rule, it avoids using 3rd-party dependencies where possible to provide more opportunities to learn.
This project is built with Rust. To get started, install rustup
and build with cargo
.
Install VcXsrv so the client can draw.
Run this from within WSL
source scripts/windows_x11
Start XLaunch
with Native opengl disabled and Disable access control checked or run this from within WSL.
wslview config.xlaunch
Run this from a WSL terminal before running something that opens a window to connect to the Windows X11 server.
export DISPLAY=$(route.exe print | grep 0.0.0.0 | head -1 | awk '{print $4}'):0.0
Download and install Windows C++ build tools. Make sure to install the Windows*SDK
in addition to the MSVC C++ build tools
.
sudo apt install clang cmake libx11-dev libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev mesa-common-dev pkg-config libssl-dev libgl1-mesa-dev
- When parsing protocols, normalize data as early as possible to minimize the chance of bugs and reduce the cognitive load of keep track of normalizations
- When normalizing strings, prefer lowercase over uppercase where possible.
- When running UI tests, the windows are headless by default to help stabilize them. To show them in situations like debugging, set the environment variable
WOWSER_HEADLESS
tofalse
when invoking.