返回

文章详情

展示HN:Shitty – 快速终端。内存不安全且比你的更快

Hacker News2026年8月2日 23:05

超级快速。内存不安全且比你的更快。Shitty专为低延迟、快速启动和可预测的资源使用而构建。它将终端状态保留在CPU上,并使用本机计算后端渲染单元:在Linux上使用Vulkan,在macOS上使用Metal。在Apple-silicon MacBook的GUI上传输100MB的性能,所有终端首先进行了均衡:Menlo 12pt,14x28px的相同单元,80x24的网格,500行滚动回退。三个运行的最佳墙时间。可打印的ASCII(滚动路径):终端 牆 用户 吞吐量 shitty 0.81s 0.50s ~118 MiB/s alacritty 0.17.0 0.96s 0.78s ~99 MiB/s kitty 0.48.2 1.28s 0.95s ~75 MiB/s ghostty 1.3.1 1.49s 1.60s ~64 MiB/s 随机字节(解析器的最坏情况,整个过程中无效的UTF-8):终端 牆 用户 吞吐量 shitty 1.88s 1.79s ~51 MiB/s alacritty 0.17.0 3.07s 2.92s ~31 MiB/s ghostty 1.3.1 4.63s ~7.0s ~21 MiB/s kitty 0.48.2 - - - kitty不处理随机有效载荷:它对嵌入的转义垃圾做出反应,改变标题和发出铃声,而不是绘制。通过dev/compare.py重现,该程序在测量任何内容之前验证每个终端内部的均衡设置。特点 VT52至VT5xx控件和广泛使用的xterm扩展。主屏和备用屏,主屏的滚动回退,边距,选项卡,矩形操作,受保护的单元和同步输出。当终端宽度更改时,主屏的滚动回退重新排版。Unicode字形聚类、组合字符、Emoji序列和双宽字符。DEC单宽、双宽和双高线。16色、256色和24位颜色,包括下划线颜色和扩展下划线样式。传统、modifyOtherKeys和Kitty键盘协议。X10、VT200、UTF-8、SGR、SGR-pixel和urxvt鼠标协议。线性和矩形选择,主选择,剪贴板集成,OSC 52策略和OSC 8超链接。Shell集成、通知、进度报告和带内调整报告。懒惰的字形光栅化、持久的GPU字形缓存和基于损坏的计算渲染。Shitty在内部使用UTF-8,并将TERM=xterm-256color导出到子进程。主机必须提供相应的terminfo条目。要求 Shitty使用C++23编写,并使用Clang构建。每次构建都需要:Python 3和glslangValidator;librsvg(rsvg-convert),它在构建时呈现图标;pkg-config;Brotli和utf8proc;POSIX线程和PTY支持。Shitty使用的libstd修订版捆绑在third_party/libstd中,并作为同一图的一部分构建。Linux还需要FreeType、HarfBuzz、Wayland客户端头、xkbcommon、wayland-scanner和Vulkan头和加载器。macOS需要SPIRV-Cross,并使用系统SDK中的CoreText、Cocoa、Metal和IOSurface。标量Base64实现始终可用。如果安装了simdutf 6.5或更新版本,构建将自动使用它加速Base64编码。Fontconfig也是可选的。当存在时,它启用字体系列查找;通过FreeType直接处理显式字体文件路径。Linux需要一个有效的Vulkan驱动程序和Wayland合成器在运行时。macOS使用原生Metal驱动程序。原生窗口和事件循环层从third_party/plt构建;终端不依赖于通用窗口工具包。完整的导入合规套件还需要ncurses和Perl。构建 构建默认安装组:./build 常见构建选项:./build -j 8 ./build -B .build-debug CPPFLAGS=-DDEBUG ./build 运行 启动默认shell:./st 运行命令:./st -e tmux new-session 选择初始终端大小和滚动回退容量:./st -geometry 120x36 -saveLines 5000 选择字体:./st -font 'DejaVu Sans Mono' -fontsize 16 ./st -font 'DejaVu Sans Mono' -dwfont 'Noto Sans Mono CJK JP' -font和-dwfont接受显式字体文件路径。当Fontconfig可用时,它们还接受系列查询,Shitty自动解析常规、粗体、斜体和粗斜体样式。可选的双宽字体仅在其单元的宽度恰好是相同高度的主字体宽度的两倍时使用。使用./st -v打印构建版本而不打开窗口,使用./st -help查看主选项列表,以及使用./st -listres查看高级终端、颜色、剪贴板和窗口策略选项。布尔标志使用-flag启用和+flag禁用。SHITTY_FONT_SIZE设置默认字体大小;-fontsize优先。会话期间,Ctrl+Shift++会增加字体大小,Ctrl+-会减小字体大小,Ctrl+0会恢复启动大小。字体调整大小保持终端的行和列,通过调整窗口到新的单元尺寸。默认情况下,应用程序无法通过OSC 52读取本地选择,也无法操作或查询主机窗口。这些操作可以为受信任的应用程序显式启用。安装 可执行文件名为st;桌面应用程序和图标名为shitty:安装 -Dm755 ./st /usr/local/bin/st 安装 -Dm644 shitty

赞助内容

NordVPN Next-gen Antivirus

本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。

请我喝杯咖啡