首页 时政热点 科技头条 智能AI 安全攻防 数码硬件 开发者生态 汽车 游戏 社会热点 开源推荐 医疗健康 归档 标签 关于

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

2026-08-03 1 阅读 约8分钟阅读 pshirshov
分享:
字号:
速度快得惊人。内存不安全并且比你的更快。 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 字素簇,组合字符、表情符号序列和双角字符。 DEC 单宽度、双宽度和双高度线。 16 色、256 色和 24 位颜色,包括下划线颜色和扩展下划线样式。旧版、modifyOtherKeys 和 Kitty 键盘协议。 X10、VT200、UTF-8、SGR、SGR 像素和 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 配置; 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 编码。字体配置也是可选的。当存在时,它启用字体系列查找;显式字体文件路径直接通过 FreeType 处理。 Linux 在运行时需要工作的 Vulkan 驱动程序和 Wayland 合成器。 macOS 使用本机 Metal 驱动程序。本机窗口和事件循环层是从third_party/plt构建的;终端不依赖于通用窗口工具包。完整导入的一致性套件还需要 ncurses 和 Perl。构建默认安装组: 常用构建选项: ./build -j 8 ./build -B .build-debug CPPFLAGS=-DDEBUG ./build 启动默认 shell: 运行命令: 选择初始终端大小和回滚容量: ./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 设置默认字体大小; - 字体大小优先。在会话期间,Ctrl+Shift++ 增大字体大小,Ctrl+- 减小字体大小,Ctrl+0 恢复启动大小。字体大小调整通过将窗口大小调整为新的单元格尺寸来保留终端的行和列。默认情况下,应用程序无法通过 OSC 52 读取本地选择,也无法操作或查询主机窗口。可以为受信任的应用程序显式启用这些操作。可执行文件名为 st ;桌面应用程序和图标被命名为shitty: install -Dm755 ./st /usr/local/bin/st install -Dm644shitty.desktop \ /usr/local/share/applications/shitty.desktop install -Dm644shitty.svg \ /us
这篇文章对您有帮助吗?

订阅66必读

每日精选科技资讯,直达你的邮箱