Welcome to the pursuit of zero latency. We're building the fastest Windows mirroring engine in the Python ecosystem. If you're here to optimize, you're in the right place. If you're here to bloat, you're not.
This project is built on raw DXGI frames and asynchronous event loops. We don't do "good enough." We do "fastest possible."
- Latency is the Enemy. Any change that adds a single millisecond of overhead without a massive feature trade-off will be rejected.
- Logic is Clean. We don't use nested "if" statements when a guard clause will do. We use Type Hints because we aren't amateurs.
- Dependencies are Weight. Every new package in
pyproject.tomlis a burden. If you can write it in 5 lines of NumPy, don't import a library.
We use uv. It is non-negotiable.
git clone https://github.com/AmiXDme/OpenTouch-Remote.git
cd OpenTouch-Remote
uv syncBefore you even think about a Pull Request, run the tests.
uv run pytestA failing test is a mark of poor planning. Fix it or don't submit.
- Async First: We use
FastAPIandpython-socketio. Never block the event loop. If you need a long-running process, use a thread (like ourCaptureEngine) and bridge it withasyncio.run_coroutine_threadsafe. - Buffer Management: We deal with raw bytes. Be careful with memory copies. Use
.copy()only when necessary. - Math over Loops: If you're processing pixels, use NumPy. If I see a
forloop iterating over pixels, I will close the PR immediately.
The UI lives in src/server.py as a raw HTML/JS string.
- Why? Because we value single-binary feel and zero-configuration deployments.
- The Rule: Keep the JS fast. Avoid heavy frameworks. Use Vanilla JS and CSS variables. If it stutters on a mobile device, it fails the test.
feat/, fix/, or perf/. If your branch name is patch-1, you're doing it wrong.
Use Conventional Commits.
perf: optimize jpeg encoding via opencv(Excellent)fix: move mouse clamping to handle high-dpi(Excellent)fixed stuff(Reject)
If you claim a performance boost, show the numbers. Use the built-in /stats endpoint to prove your change reduced frame-skip or latency.
If you have a technical question about the DXGI pipeline or touch scaling, open an Issue. If you're asking how to install Python, use a search engine. We value your time; value ours.
Now, go find some milliseconds.