
Xterm.js 1.1 – Full in-browser terminal with IME support and physical scrolling - parisk
https://github.com/sourcelair/xterm.js
======
paulirish
xterm.js was adopted a bit ago for Visual Studio Code. It's quite nice.
[https://code.visualstudio.com/docs/editor/integrated-
termina...](https://code.visualstudio.com/docs/editor/integrated-terminal)

Another project worth mentioning is hterm. It's used in the Secure Shell
Chrome extension and in the Hyperterm project.
[https://chromium.googlesource.com/apps/libapps/+/master/hter...](https://chromium.googlesource.com/apps/libapps/+/master/hterm)

------
stuaxo
It's worth doing a bit of performance testing on these.

The last one I tested (not xterm.js) really started bogging down (I made a
simple test that sent output to two terminals at the same time) - when sent a
lot of data, until it was possible to freeze the browser.

~~~
parisk
We have an open issue at xterm.js to improve the performance of the terminal.
While xterm.js has decent performance right now (can handle lots of incoming
data), there is much space for improvement.

For more info take a look at
[https://github.com/sourcelair/xterm.js/issues/150](https://github.com/sourcelair/xterm.js/issues/150)
and feel free to take part in the conversation.

------
Lerc
Nice. I'm currently using a cobbled together terminal in my project, it works
well enough to run nano but no scrollbuffer or text selection. I have a system
where Linux processes can connect to a Unix domain socket and it tunnels over
a websocket connection to provide the UI. Sort of like X11 only with a webpage
on the far end.

Xterm.js and hterm both seem like good candidates for a real-world use
terminal

------
santa_boy
I use Wetty. It is too good and gives a near native terminal experience.

Link below ..

[krishnasrinivas/wetty: Terminal in browser over http/https. (Ajaxterm/Anyterm
alternative, but much
better)]([https://github.com/krishnasrinivas/wetty](https://github.com/krishnasrinivas/wetty))

------
rmetzler
How would that compare to GoTTY[1]?

[1] [https://github.com/yudai/gotty](https://github.com/yudai/gotty)

~~~
parisk
Hi rmetzier,

As mentioned in its GitHub repo GoTTY lets you "Share your terminal as a web
application".

xterm.js is a front-end only library; a terminal emulator that runs in the
browser.

This means that xterm.js could act as the front-end of GoTTY, but it uses
hterm instead, which is a similar project.

------
fulafel
What is the connection to xterm?

~~~
parisk
Nah, I misinterpreted the word "connection". Xterm.js aims to be as close as
possible to the original xterm's functionality as a terminal emulator, that
runs in the browser.

