5
0
mirror of git://git.proxmox.com/git/pve-xtermjs.git synced 2025-01-11 09:18:22 +03:00
Go to file
Thomas Lamprecht 7d87397198 termproxy: enable full LTO
shaves of over 100KB of the final binary and this crate is small
enough to not notice a relevant compile time impact.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-17 10:49:54 +02:00
.cargo termproxy: rewrite in rust 2020-07-23 12:13:31 +02:00
termproxy termproxy: enable full LTO 2023-10-17 10:49:54 +02:00
xterm.js split upstream and our native into different source packages 2023-10-17 10:49:54 +02:00
.gitignore split upstream and our native into different source packages 2023-10-17 10:49:54 +02:00
README readme: update and reword slightly 2023-10-04 15:40:01 +02:00

xterm.js webclient and helper utility
=====================================

This repository contains the client and helper utility to use xterm.js [0] in
the web UI of Proxmox projects like Proxmox VE, Proxmox Mail Gateway or Proxmox
Backup Server.

[0]: https://xtermjs.org

To be able to relay between the frontend and a shell program/console running in
the backend, we provide a tool called termproxy to open a port (where our
websocketproxy connects to) and to open a PTY and execute a program.

For communication originating from the client towards the server, it implements
a simple packet-based protocol where everything is a string. The protocol
consists of the following messages:

* Normal Message
    0:LENGTH:MSG
    where LENGTH is the bytelength of the msg

* Resize Message
    1:COLS:ROWS:
	where COLS is the number of columns the client wants to resize to, and ROWS
	the number of rows, respectively

* Ping Message
    2
    used to keep the connection between client and server alive
    (we have a timeout of 5 minutes)

Every other input from the client will be ignored.

Communication from server to the client uses no protocol, the raw data coming
from the terminal/program will be forwarded 1:1, without any wrapping format.