Hacker News new | ask | show | jobs
by sawka 918 days ago
All of the tty processing, networking, and stream processing is done in Go, so it is fast. There is obviously more performance work to do, but in some situations our model can actually be faster than other terminals. If you cat a 1GB file in Wave, it actually runs quickly because the frontend can drop frames, while the Go backend is buffering the stream (so to answer your question, JS is not in the hot path, only Golang is).
1 comments

> the frontend can drop frames, while the Go backend is buffering the stream

Surely that's not great. Dropped frames are terrible for following what's happening on the screen and even worse for scrolling.

mosh is also dropping frames if it needs to. only happens when the network speed can't keep up with the data being sent through
Yeah exactly. That's meant to make a laggy remote session feel a little less stuttery, which in many cases improves the experience.

It's not the same as doing that between 2 local layers.

well, i have had local sessions hang because they had to much output, so i kind of see the benefit locally too.
One terminal emulator with a bad implementation of buffering and outputting text doesn't make a different bad one good.