Roadmap

Previous steps before Version 0.2 (beta):

  • 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)

Next steps for Version 1.0:

  • 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)
  • Capture mouse pointer
  • Implement Audio channel
  • Support hardware encoding with va-api, nvenc and amf (in progress)
  • Create a windows service and manage user sessions
  • Support encrypted connections with OpenSSL
  • Implement user authentication with SASL
  • Implement system authentication with Kerberos
  • Support multiple monitors
  • Improve viewer’s GUI
  • Resize monitors from viewer
  • Support MacOS

Ideas for the future:

  • Support AmigaOS