We’ve been building on top of our browser-unikernel repo [0] and wanted to replace the noVNC remote GUI with something much faster. NoVNC is okay but it’s super laggy with any JS-heavy website (basically anything besides Hacker News…). We added remote GUI support using WebRTC, which supports:
- low latency read/write live view into the sandboxed browser (scrolling, clicking, typing feel way more responsive)
- can launch directly as a Docker container or on Unikraft unikernels
- process real-time streams with a fast boot up time (<20ms) if you’re using unikernels
WebRTC is powerful (supports all types of media and data transmission) but not trivial to implement. We adapted the Neko [1] library to play nicely with our base Chromium image. We also tailored the frontend to our use case.
Would love any thoughts/feedback from folks who’ve worked on streaming projects before.
[0] https://news.ycombinator.com/item?id=43705144
[1] Adapted from: https://github.com/m1k1o/neko
* Note: we've started working on adding video replays, so there's some source code for that already in our repo too.
juecd•6h ago