Repolode
elixir-crab

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. 1

    克隆代码仓库

  2. 2

    获取依赖

    mix deps.get
  3. 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 数据每日更新。

相关项目