https://github.com/fubarnetes/webterm
web terminal based on xterm.js in rust
https://github.com/fubarnetes/webterm
library rust webterminal xterm xterm-js
Last synced: 9 months ago
JSON representation
web terminal based on xterm.js in rust
- Host: GitHub
- URL: https://github.com/fubarnetes/webterm
- Owner: fubarnetes
- License: bsd-3-clause
- Created: 2019-01-04T00:58:23.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2022-07-26T10:23:46.000Z (over 3 years ago)
- Last Synced: 2024-10-14T06:41:04.211Z (over 1 year ago)
- Topics: library, rust, webterminal, xterm, xterm-js
- Language: Rust
- Homepage:
- Size: 715 KB
- Stars: 49
- Watchers: 2
- Forks: 10
- Open Issues: 16
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# webterm
web terminal based on xterm.js in rust

# Is it any good?
[Yes.](https://news.ycombinator.com/item?id=3067434)
# How does it work?
There is a rust backend based [Actix], consisting of two actors:
* `Websocket` implements a websocket that speaks the [Terminado] protocol
* `Terminal` handles communication to a child spawned on a PTY using [tokio-pty-process].
The frontend is a static HTML page served by [actix-web][Actix] providing an [xterm.js] UI.
[Actix]: https://actix.rs
[Terminado]: https://github.com/jupyter/terminado
[tokio-pty-process]: https://crates.io/crates/tokio-pty-process
[xterm.js]: https://xtermjs.org/
# Local development
```
cargo build
cargo run
```
Then head to `http://localhost:8080/` to see it in action!
# Should I run this on the internet?
Probably not. It lets anyone who can access the webpage control your system.