Half a croissant, on a plate, with a sign in front of it saying '50c'
h a l f b a k e r y
Poof of concept

idea: add, search, annotate, link, view, overview, recent, by name, random

meta: news, help, about, links, report a problem

account: browse anonymously, or get an account and write.



WebAssembly/node.js support for terminal emulators over high latency links

  [vote for,

What would be interesting is if a terminal acts as a hybrid virtual machine and standard terminal emulator.

So basically if a terminal program supports this mode. What it would do, is seperate the code running the interface into a webassembly/javascript code, and send it over to the terminal emulator. The terminal emulator will then run the code client side. Thus allowing for more responsive user interface for a terminal.

[remote server] ----> [web assembly client/terminal]--->[user]

Basically all this optional client side code does, is expose 'stdin/stdout' for the remote server, and 'stdin/stdout' for the user. It just sits inbetween the user and remote, allowing for responsive user interface.

mofosyne, Jul 06 2016

ANSI Escape Code en.wikipedia.org/wiki/ANSI_escape_code
This is what most terminal uses. You would transfer web assembly in some form though this (e.g. kermit?) , as well as the various piped data [mofosyne, Jul 07 2016]


       via terminal escape code. This is because by default this is a normal terminal. Its just that it can switch to a mode where it receives webassembly code first (if not caeched already), and uses the webassembly program to act as the frontend of a terminal program.   

       You will still see it like a normal terminal session, but in say a text editor it would be more responsive since the view is local.   

       Think of this as a more interactive version of "local echo".   


       So say vi has a local interactive mode.   

       -------- REMOTE Server ----- |------- LOCAL TERMINAL --
[LINUX] --- [ VI Program ] -:|:-------- [ User ]

       Now the view and controller is separated. However the user experience is more responsive.   

       -------- REMOTE Server ---- |------- LOCAL TERMINAL --
[LINUX] --- [VI Backend ] -:|:-- [ VI Frontend ] -- [ User ]
mofosyne, Jul 07 2016

       The remote server often hosts a database that is relevant to the web page. How does this manage to locally handle that aspect of the web page?
Vernon, Jul 07 2016

       Vernon, Jul 07 2016   

       I imagine it depends on the program's implementation. You could perhaps provide some statistics on link stability so the program can switch between different syncing mode depending on how stable the link is (ping, bandwidth, latency).   

       But essentially think of this as a stripped down webbrowser, where it still has the virtual machine that runs .wasm programs, but to a text terminal output instead.   

       As for if its the same wasm program each time? Well if you caeched it, then you can just load that up if the fingerprint matches. (As for security, well just like a dumb terminal, a wasm terminal program shouldn't communicate outside the terminal (But happy to be convinced otherwise).
mofosyne, Jul 11 2016


back: main index

business  computer  culture  fashion  food  halfbakery  home  other  product  public  science  sport  vehicle