搜索你想找的开源项目

输入名称、用途或关键词,也可粘贴 GitHub 仓库链接

分享到微信

当前解读页的微信分享二维码

用微信扫一扫打开,点击右上角「···」分享给朋友或朋友圈。

手机上可截屏后,在微信扫一扫中从相册识别二维码。

yappologistic/CUI

开发工具

C 语言原生 UI 组件库,约 190 个组件,支持 Windows、macOS 和 Linux 跨平台桌面应用。

868
48
C
MIT
创建于 7 天前

项目定位

CUI 是一个用 C99 编写的 GUI 组件库,采用即时描述式的 API:组件本身就是函数,负责绘制自身、处理输入并返回交互结果;选项通过具名参数传入,界面每帧重新描述,因此应用变量就是状态本身。它提供约 190 个组件,覆盖按钮、输入框、选择器、弹层、数据表格与虚拟化网格、看板、甘特图、多种图表、代码/终端面板以及 AI 聊天类组件,并内置弹簧动效和完整键盘导航。

底层通过 Win32、Cocoa、X11 或 SDL2/GLFW 创建窗口,用 OpenGL 3.3 或软件渲染器绘制,也可以只接收三角形交给自定义渲染器。项目报告最小应用约 240 KB、库整体约 1,050 KB,核心无第三方运行时依赖,采用 MIT 许可证。

快速开始

项目使用 CMake,支持 GCC、Clang、MSVC 和 MinGW。既可以作为 CMake 子项目通过 FetchContent 引入,也可以克隆仓库直接构建示例:

git clone https://github.com/yappologistic/CUI.git
cmake -S CUI -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build
./build/examples/tracker

Linux 需要 X11 开发头文件(如 libx11-dev),Windows 和 macOS 只需系统 SDK。其他构建方式和后端参见入门文档;不想安装也可以直接在在线文档里试用所有组件。examples 目录提供从最小 hello 到完整画廊的示例。

使用约束

当前 1.3 版本还没有供屏幕阅读器使用的无障碍树,尽管键盘焦点和导航是完整的。复杂文字支持有限:阿拉伯文塑形、双向文本和塑形段落换行需要可选的 CUI_TEXT_SHAPING CMake 开关,且不覆盖编辑场景;CJK 需要额外添加回退字体。不支持原生 Wayland,需使用 SDL2/GLFW 后端或 XWayland。尚无 Android/iOS 平台层,布局可适配手机宽度并运行于移动浏览器。文档截图由测试渲染产生,视觉改动需随测试一起更新。许可证为 MIT,附带字体和图标遵循各自的许可文件。

HotRepo 点评

在 2026-11-09 的新项目榜快照中,CUI 记录到 625 Star 和 31 Fork,统计窗口从 2026-11-08(UTC)开始约 24 小时,净增 260 Star,是本次观察里单日涨幅较大的项目之一。2026-11-06 至 2026-11-09 的逐小时采样从 111 Star 升至 625,走势持续而非单点脉冲。结合仓库自带可运行示例和浏览器演示,这更像是持续开发中的组件库,而不是推广页。不过当前没有记录到全部语言日榜名次,因此还不能用排名说明热度;这些数据反映的是关注度,不等于采用量或生产可用性。

本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。

相关推荐

  1. longbridge/nsh用 TSX 或 Rust 写一套界面,靠各平台自己的原生控件渲染 iOS、Android、桌面和网页。Rust614
  2. oneo-me/nsgo用 Go 编写跨平台应用,各平台以自身原生视图渲染界面。Go134
  3. lobehub/lobe-mygo将 Lobe UI 组件与设计令牌带到用 MyGo 构建的原生 Go 桌面应用的 UI 工具库。Go104
  4. vivaui/viva用 Go 构建原生桌面应用,直接走各平台自己的窗口与 GPU API,不依赖 WebView,也不打包运行时。Go101
  5. Caho1/open-claude-ui把 Claude 官方桌面端的设计系统与动效物理逆向还原成 React 组件库,供人直接抄用。TypeScript1,398