WindTerm README

The project's README from github.com/kingToolbox/WindTerm. As one markdown file: README.md.

WindTerm

A Quicker and better SSH/Telnet/Serial/Shell/Sftp client for DevOps.

Hello WindTerm :rose:, hello world!

We're just beginning! If you want a high performance text editor, you can try WindEdit.

License

Completely FREE for commercial and non-commercial use without limitations. All released source codes (except thirdparty directory) are provided under the terms of Apache-2.0 license.

Introduction

See Intro Videos

Download

Linux binary, MacOS binary and Windows binary: https://github.com/kingToolbox/WindTerm/releases

Source Code

WindTerm is a partial open source project, and the source will be gradually opened.

Open source code includes, but is not limited to, the classes that can be used independently, such as functional, algorithms, gui widgets, etc., as well as functional libraries, such as network, protocols, etc., as well as all types that require open source according to the license.

Issues and feature requests

Any issues and feature requests are welcome.

Please click issues to commit an issue or a feature request.

Please click Discussion to discuss anything about SSH, SFtp, Shell(Linux shell, Windows cmd and powershell), Telnet, Serial and WindTerm.

Screenshots

Main Window (zsh):

MainWindow

Split views:

SplitView

DigeWhite Theme:

DigeWhite Theme

Features

SSH, Telnet, Tcp, Shell, Serial, Tmux

GUI

Term

Session

Performance

Sftp Performance

The hardware used for generating the data in these benchmarks was

windows 10 - 2.3 GHz Intel Core i5 and 8GB memory.

WindTerm1.72, WindTerm 1.2, FileZilla 3.48.1, WinSCP 5.17.2 (Build 10278) tests are performed on WSL(Ubuntu 18.04.2).

The version of clients:

Application Version Release Date
windterm v1.72 2020-10-25
windterm v1.2 2020-06-15
FileZilla v3.48.1 2020-05-19
WinScp v5.17.2 (Build 10278) 2020-03-09

All test data is for reference only.

5GB huge file (5,154,830 KB), generated by random data

Download Time Download Rate Upload Time Upload Rate
WindTerm 1.72 (Use high speed transfer) 23s 216.3 MB/s 20s 247.0 MB/s
WindTerm 1.72 23s 214.7 MB/s 20s 244.0 MB/s
WindTerm 1.2 37s 139.3 MB/s 43s 119.9 MB/s
FileZilla 32s 161.1 MB/s 30s 171.8 MB/s
WinSCP 81s 63.7 MB/s 91s 56.7 MB/s

4400 files, 16 folders (107,042 KB), unzipped from vim-7.4.1049.zip

Download Time Download Rate Upload Time Upload Rate
WindTerm 1.7 26s 3.9 MB/s 13s 8.1 MB/s
WindTerm 1.2 32s 3.4 MB/s 10s 10.7 MB/s
FileZilla 48s 2.2 MB/s 35s 3.1 MB/s
WinSCP 42s 2.6 MB/s 12s 8.9 MB/s

Terminal Performance

The hardware used for generating the data in these benchmarks was

windows 10 - 2.3 GHz Intel Core i5 and 8GB memory.
MacOs 10.13 - 2.3 GHz Intel Core i5 and 8GB memory.

WindTerm 1.72, rxvt, putty, xterm, Windows Terminal tests are performed on WSL(Ubuntu 18.04.2).

Iterm2, kitty, Alacritty tests are performed on MacOS shell,

For WindTerm: No color scheme used in windterm. Color scheme will result in approximately 2% loss and more memory usage.

For Alacritty: Only supports up to 100,000 scrollback lines, so every test use "history: 100000" setting and no memory usage measured.

For Windows Terminal: Only supports up to 65,535 scrollback lines, so every test use "historySize: 65535" setting and no memory usage measured. 

The version of terminals:

Application Version Release Date
windterm v1.72 2020-10-25
rxvt-unicode v9.2.2 2016-05-14
putty v0.71 2019-03-16
xterm v3.30 2017-06-20
iterm2 v3.3.6 2019-10-09
alacritty v0.5.0 2020-07-21
kitty v0.14.6 2019-09-25
Windows Terminal v1.3.2651.0 2020-09-22

All test data is for reference only.

Test Command: "cat ./benchmark_randomdata"

The benchmark_randomdata contains 97.6MB random text (102,401,504 bytes, 1,329,878 lines, generated and tested by random_test.sh)

In all cases, three runs were made to warm system caches. The reported numbers are the median of five runs.

  1. Telnet:
Lines of scrollback Data Rate(MB/sec) Memory Usage(MB)
WindTerm unlimited 52.1 106.6
rxvt 1,350,000 37.8 842.2
Putty 1,350,000 4.9 733.4
xterm 1,350,000 2.2 3328.4
Windows Terminal + telnet.exe 65,535 0.1 Not measured, use 65,535 scrollback lines setting
  1. SSH:
Lines of scrollback Data Rate(MB/sec) Memory Usage(MB)
WindTerm unlimited 41.8 108.5
rxvt 1,350,000 40.2 842.2
Putty 1,350,000 4.8 734.9
xterm 1,350,000 2.3 3328.4
Windows Terminal + ssh.exe 65,535 2.1 Not measured, use 65,535 scrollback lines setting
  1. Shell:
Lines of scrollback Data Rate(MB/sec) Memory Usage(MB)
iterm2 unlimited - (Take too long time) more than 1300
kitty unlimited 17.2 2655
Alacritty 100,000 41.3 -

Test command: "time seq 1 n" (n = [1000000, 2000000, 5000000, 10000000], scrollback lines: unlimited)

n = 1,000,000

Time(sec) Memory Usage(MB)
WindTerm 1.236 16.1
rxvt 5.082 633.3
putty 4.161 551.1
xterm 40.421 2500.7
iterm2 2.116 146.3
Kitty 2.535 2376.5
Alacritty 1.162 Not measured, use 100,000 scrollback lines setting
Windows Terminal + ssh.exe 23.246 Not measured, use 65,535 scrollback lines setting

n = 2,000,000

Time(sec) Memory Usage(MB)
WindTerm 2.287 24.1
rxvt 10.896 1266.6
putty 16.045 1102.6
xterm 68.154 5005.5
iterm2 4.181 383.2
Kitty 5.620 4749.9
Alacritty 2.322 Not measured, use 100,000 scrollback lines setting
Windows Terminal + ssh.exe 50.381 Not measured, use 65,535 scrollback lines setting

n = 5,000,000

Time(sec) Memory Usage(MB)
WindTerm 5.520 68.2
rxvt 27.533 3166.2
putty 45.911 2757.1
xterm - Out of memory
iterm2 10.805 1048.3
Kitty - Out of memory
Alacritty 5.799 Not measured, use 100,000 scrollback lines setting
Windows Terminal + ssh.exe 130.371 Not measured, use 65,535 scrollback lines setting

n = 10,000,000

Time(sec) Memory Usage(MB)
WindTerm 10.674 133.3
rxvt - Out of memory
putty - Out of memory
xterm - Out of memory
iterm2 20.468 2231.3
Kitty - Out of memory
Alacritty 11.598 Not measured, use 100,000 scrollback lines setting
Windows Terminal + ssh.exe 264.739 Not measured, use 65,535 scrollback lines setting

n = 10,000,000 scrollback = 30 Lines

Time(sec) Memory Usage(MB)
WindTerm 10.167 0.7
rxvt 9.687 0.1
putty 95.382 0.4
xterm 286.510 0.1
iterm2 25.448 7.4
Kitty 16.104 0.5
Alacritty 11.798 Not measured, use zero scrollback lines setting
Windows Terminal + ssh.exe 261.096 Not measured, use zero scrollback lines setting

Linux Terminal Performance

The hardware used for generating the data in these benchmarks was

Debian 10 Vm - 4cpu and 4GB memory.

For WindTerm: No color scheme used in windterm. Color scheme will result in approximately 2% loss and more memory usage.

For other terminals: No memory usage measured because most of them write the history to disk or only support a limited number of lines in memory..

The version of terminals:

Application Version Release Date
Windterm v1.9 2020-12-22
Gnome v3.30.2 2018-10-22
Mate Terminal v1.20.2 2019-02-11
Konsole v18.04.0 2019-04-12
Xfce4 Terminal v0.8.7.4 2018-5-15
QTerminal v0.14.1 2019-01-26

All test data is for reference only.

Test Command: "cat ./benchmark_randomdata"

The benchmark_randomdata contains 97.6MB random text (102,401,504 bytes, 1,329,878 lines, generated and tested by random_test.sh)

In all cases, three runs were made to warm system caches. The reported numbers are the median of five runs.

Cost Time
WindTerm 1.976s
Gnome Terminal 9.781s
Mate Terminal 9.841s
Konsole 25.050s
xfce4 Terminal 10.520s
QTerminal 20.763s

Test command: "time seq 1 n" (n = [1000000, 2000000, 5000000, 10000000], scrollback lines: unlimited)

n 1,000,000 2,000,000 5,000,000 10,000,000 10,000,000
(scrollback lines: 100)
WindTerm 0.846s (18.6MB) 1.574s (26.6MB) 4.046s (56.4MB) 8.232s (102.2MB) 7.748s (3.4MB)
Gnome Terminal 0.920s 2.152s 5.271s 11.111s 13.109s
Mate Terminal 0.822s 1.698s 5.943s 10.920s 12.290s
Konsole 1.612s 3.199s 8.157s 16.029s 15.650s
xfce4 Terminal 0.870s 2.160s 5.866s 12.089s 13.304s
QTerminal 9.272s 18.391s 45.999s 104.277s 17.208s

Latency

Considering the network influence on the latency, the following data is from WindEdit. DIGEdit is the text component of WindTerm.

Min Max Avg SD
WindEdit 1.9 7.6 2.9 0.8
Windows Notepad 0.9 16.5 7.8 1.8
GVim 0.9 10.4 2.8 1.2

Shortcuts

Shortcut Keys List

Roadmap

Release cycle:

2-3 months.

Prerelease cycle:

4~6 weeks

Roadmap of v2.7 (February 2025, for reference only)

Download: WindTerm 2.7.0 Prerelease 3 (2025-2-10)

Roadmap of version 2.x:

Release Schedule:

Version Level Target Status Timeline
v0.x Basic Basic framework and basic features, but complete a high-performance text editor (WindEdit) as the base, and be able to use them normally. Finished Long long ago ~ Sprint of 2020
v1.x Manual Perfect features and can be used by most developers in their daily work Finished Spring of 2020 ~ Winter of 2020
v2.x Semi automatic Through triggers, macros, events, notifications and so on, developers can be assisted to complete some operations. Developing Spring of 2021 ~ Summer of 2022
v3.x Fully automatic Through plugins, scripts, machine learning and so on, automatically operating with achieving non-attended Planning Summer of 2022 ~ Winter of 2023

Acknowledgement

Contribution
EvoWebFrance French translation
kvnklk German translation
Lemonawa Simplified Chinese translation
LuxNegra French translation
MosamXu Simplified Chinese translation

WindTerm (kingToolbox/WindTerm)

Searching Database…

32.5K ·GitHub
这是什么?WindTerm 是一款免费的专业 SSH/Telnet/Serial/Shell/Sftp 客户端和终端,专为 DevOps 打造,把远程连接、本地 shell 和文件传输都集成在同一个应用里。
它是图形界面软件还是命令行工具——我到底要安装什么?它是一个跨平台的图形界面桌面应用,不是程序库,也不是命令行插件。Windows、MacOS 和 Linux 都有现成的安装包,你直接安装这个软件本身就行。
我怎么把它跑起来?从 GitHub releases 页面下载适用于 Windows、MacOS 或 Linux 的预编译程序并运行即可——README 里没有提到任何编译步骤或额外依赖。
它能连接哪些东西,能运行哪些 shell?它原生实现了 SSH v2、Telnet、Raw TCP、Serial 和 Shell 协议。在 Windows 上可以运行 Cmd 和 PowerShell(包括以管理员身份),在 Linux/MacOS 上可以运行 bash、zsh 和 PowerShell Core,并且集成了 tmux。
它是完全开源的吗?我在公司里可以免费使用吗?这款软件无论商用还是非商用都完全免费,没有任何限制。公开的源码采用 Apache-20 协议(thirdparty 目录除外),但 WindTerm 目前只部分开源——代码会逐步开放。
它支持哪些终端仿真和文本功能?它支持 vt100 到 vt520 以及 xterm 和 xterm-256-colors 的终端仿真,支持 Unicode 13、emoji 表情、真彩色和鼠标协议;除了 Tektronix 4014 之外,所有 vttest 测试全部通过。
它的界面有哪些日常好用的功能?有自动补全、命令面板和命令发送器、分屏视图、会话树(重启后自动恢复会话和布局)、本地/远程两种模式(支持 vim 快捷键,Shift+Enter 可在两者间切换)、类似 vscode 的配色方案、界面主题、标签页搜索和着色、窗口透明,以及选中即复制、右键即粘贴。
登录服务器是怎么操作的?自动登录支持密码、公钥、keyboard-interactive 和 gssapi-with-mic 几种方式,SSH 自动执行功能可以在认证完成后立刻运行命令。会话可以重命名、复制、手动或自动记录日志,还能设置启动时自动打开指定的某个或某组会话。
What are similar projects?omnyssh, shell-rs, xpipe, Netcatty, navop, electerm, herdrm, AceShell
Size
18.3 MB
Stars
32.5K
Age
7y
Commits · 90 Days