Slint 是一个声明式 GUI 工具包,用于在 Rust、C++、JavaScript 或 Python 应用中构建原生用户界面。
elixir-crab/gpui
用 Elixir 声明式构建原生桌面应用的库,界面由 Rust 编写的 GPUI 渲染。
- Star
- 102
- Fork
- 4
- 未关闭 Issue
- 12
- 最近提交
- 4天前
这是什么?
GPUI 让开发者可以用 Elixir 编写原生桌面应用。应用状态、窗口结构和界面声明保留在 Elixir 中,窗口、渲染、焦点、输入法和无障碍等原生事件循环由 Rust 负责。界面使用类似 HEEx 的模板编写,鼠标、键盘和无障碍激活事件通过带类型的事件通道回到 Elixir。
同一份声明式应用可以运行在本地原生显示、无需显示服务器的确定性测试显示,或另一台机器上的远程显示中。常规控件由独立的 gpui_components 包提供,底层基于 gpui-component。项目为 Linux、Apple silicon macOS 和 x86-64 Windows 提供预编译的 NIF 包。
仓库是一个 Mix umbrella 项目,包含 gpui、gpui_components、gpui_native 三个包,并附带富文本记录、BEAM 运行时监控面板和组件库示例等。
核心功能
- 01使用类似 HEEx 的模板在 Elixir 中声明界面
- 02窗口、焦点、输入法和无障碍由 Rust 与 GPUI 负责
- 03无需显示服务器的确定性测试显示
- 04远程显示可让权威会话运行在另一台机器上
- 05支持 UTF-16 位置、撤销重做和输入法的原生文本编辑
- 06虚拟化列表与可选择的富文本
适用场景
- 在现有 Elixir/OTP 系统之上构建原生桌面工具或监控面板
- 在无显示服务器的环境中为 Elixir 桌面界面编写测试
- 由 Elixir 控制应用,并将窗口显示在另一台机器上
- 为 Elixir 桌面应用添加按钮、表单等常规控件
快速上手
- 1
克隆代码仓库
- 2
获取依赖
mix deps.get - 3
运行 Hello Window 示例
RUST_FONTCONFIG_DLOPEN=1 mix run apps/gpui/examples/getting_started/01_hello_window.exs
使用前须知
- 预编译的原生二进制文件仅支持 Linux、Apple 芯片 macOS 和 x86-64 Windows。
- 原生显示功能需要本地显示服务器和相应的平台前置条件。
收录于专题
标签
常见问题
- gpui 是什么?
- 用 Elixir 声明式构建原生桌面应用的库,界面由 Rust 编写的 GPUI 渲染。 GPUI 让开发者可以用 Elixir 编写原生桌面应用。应用状态、窗口结构和界面声明保留在 Elixir 中,窗口、渲染、焦点、输入法和无障碍等原生事件循环由 Rust 负责。界面使用类似 HEEx 的模板编写,鼠标、键盘和无障碍激活事件通过带类型的事件通道回到 Elixir。
- gpui 可以免费使用吗?用的什么许可证?
- gpui 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- gpui 还在维护吗?
- 活跃维护中。gpui 最近一次提交是在 2026年11月3日。
- gpui 适合用来做什么?
- 在现有 Elixir/OTP 系统之上构建原生桌面工具或监控面板 在无显示服务器的环境中为 Elixir 桌面界面编写测试 由 Elixir 控制应用,并将窗口显示在另一台机器上 为 Elixir 桌面应用添加按钮、表单等常规控件
- gpui 怎么安装和运行?
- 克隆代码仓库 获取依赖: mix deps.get 运行 Hello Window 示例: RUST_FONTCONFIG_DLOPEN=1 mix run apps/gpui/examples/getting_started/01_hello_window.exs
- 在哪里获取 gpui?
- 源代码和安装说明在 GitHub 上:https://github.com/elixir-crab/gpui
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
2.4万+92 本周1059RustOther更新于 18小时前
用 Rust 编写的跨平台原生声明式 GUI 库,用于构建桌面和移动应用。
3307+23 本周152RustMIT更新于 19小时前
用 Go 编写应用逻辑、由各平台原生控件渲染的跨平台 UI 引擎。
198+32 本周9GoOther维护活跃更新于 20小时前
基于 GPUI 的 Rust 桌面 GUI 组件库,提供 75 个以上样式组件,用于构建跨平台应用。
2万+848 本周1215RustOther更新于 20小时前
一个 Python 原生 GUI 工具包,使用各操作系统自带的原生控件构建应用界面。
5431+5 本周836PythonBSD-3-Clause维护活跃更新于 昨天
用 Go 开发桌面应用的框架,可选系统 WebView 网页界面或 GPU 绘制的原生 UI。
5015+1245 本周303GoMIT维护活跃更新于 18小时前