Version 2025.0: (100% done)
- Create a dedicated website in this domain (done)
- Support mpeg1video, vp9 and av1 codec with FFmpeg libraries (done)
- Implement lossless codec (done)
- Support quality updates (done)
- Handle mouse cursor (done)
- Implement Audio channel (done)
- Increment Linux support (done)
- Application settings in .conf file, environment variables and registry keys (done)
- Implement server/agent splice to support session 0 and user sessions (done)
- Create a windows service and manage console sessions (done)
- Support encrypted connections with TLS / SSL (done)
- Implement user and system authentication (done)
- Implement hardware decoding on Windows / d3d11va (done)
- Implement hardware encoding with nvenc (done)
- Implement hardware encoding with amf (done)
- Implement clipboard channel (done)
- Improve viewer’s GUI (done)
- Implement relative mouse (done)
- Create installer on Windows (done)
- Finalize messages and settings (done)
- Server installer script for Linux (done)
- Support virtual monitors with NvAPI (done)
- Support virtual monitors with ADL (done)
- Support multiple adapters (done)
Version 0.2 (beta): (100% done)
- Write multi-stream TCP message transport with TBF objects (done)
- Implement a simple client / server application with handshake (done)
- Implement a first connection model with authentication for multiple clients (done)
- Capture the screen on the server with GDI (done)
- Implement a simple screen capture component with a slicer per client (done)
- Compress the screen in jpeg with stb_image and send to the connected clients (done)
- Implement a frames-in-transit logic to avoid accumulation (done)
- Capture the screen on the server with Xlib on Linux (done)
- Introduce main channel, display channel and input channel (done)
- Capture mouse inputs on the client and send to the server (done)
- Implement a strategy to translate between different keyboard models (done)
- Capture keyboard input, send to the client and inject (done)
- Create plugin with turbo-jpeg compression and decompression (done)
- Implement screen capture with Desktop Duplication (done)
- Optimize async pattern to reduce CPU usage on low-end machines (done)
General improvements:
- Implement hardware decoding on Linux with vaapi
- Port FFmpeg encoder/decoder on Linux
- Port NvENC encoder on Linux
- Port AMF encoder on Linux
- Screen capture with NvFBC
- Handle multiple monitors on the same client
Next steps for Version 2025.1:
- Virtual sessions on Linux
- Implement file transfer channel
- Support touch screen
- Support gamepad
- Support MacOS
- UDP transport on native viewer
- Web-browser viewer
Ideas for the future (probably 2026.0):
- Support Android
- Support iOS
- Develop TMD SDK