5
0
mirror of git://git.proxmox.com/git/pve-xtermjs.git synced 2024-12-22 17:35:56 +03:00
Go to file
Thomas Lamprecht 13e2e50222 termproxy: update clap crate to major version 4
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-04 17:19:49 +02:00
.cargo termproxy: rewrite in rust 2020-07-23 12:13:31 +02:00
debian termproxy: update clap crate to major version 4 2023-10-04 17:19:49 +02:00
src termproxy: update clap crate to major version 4 2023-10-04 17:19:49 +02:00
.gitignore extend .gitignore 2023-05-23 14:13:00 +02:00
Cargo.toml termproxy: update clap crate to major version 4 2023-10-04 17:19:49 +02:00
Makefile download and use xterm-addon-webgl as renderer 2023-09-26 10:20:11 +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.