一个易于使用的 Rust 即时模式 GUI 库,可同时运行在 Web 和原生平台,也可嵌入游戏引擎。
iced-rs/iced
受 Elm 启发、面向 Rust 的跨平台 GUI 库,强调简洁与类型安全。
- Star
- 31,808
- Fork
- 1,709
- 未关闭 Issue
- 512
- 最近提交
- 7小时前
这是什么?
Iced 是一个 Rust GUI 库,采用类似 Elm 的架构来构建桌面和 Web 界面。界面被拆分为状态、消息、将状态渲染为控件的视图函数,以及根据消息更新状态的更新函数。布局和事件处理由库完成,应用代码只需描述界面展示什么、如何响应。
它支持 Windows、macOS、Linux 和 Web,内置文本输入框、可滚动区域等控件,也支持自定义控件,并提供基于 future 的异步操作支持。项目采用模块化设计:与渲染器无关的运行时可独立使用,渲染部分包括基于 wgpu 的 iced_wgpu(支持 Vulkan、Metal 和 DX12)以及作为软件回退方案的 iced_tiny_skia,窗口外壳负责与操作系统对接。
项目目前仍处于实验阶段,不同版本之间 API 可能发生变化。
核心功能
- 01采用 Elm 式的状态、消息、视图与更新模型,消息类型安全
- 02支持 Windows、macOS、Linux 和 Web 平台
- 03内置文本输入框、可滚动区域等控件,并支持自定义控件
- 04基于 wgpu(Vulkan、Metal、DX12)的渲染器,并提供 tiny-skia 软件渲染回退
- 05支持基于 future 的异步操作
适用场景
- 用纯 Rust 开发跨平台桌面应用
- 制作带原生风格界面的小型工具
- 将与渲染器无关的 GUI 运行时集成到现有系统中
- 在 Rust GUI 代码中实践 Elm 式架构
快速上手
- 1
将 iced crate 添加到你的 Rust 项目中
- 2
阅读文档书籍、API 文档和示例以深入了解
使用前须知
- README 称 Iced 目前仍是实验性软件。
- README 显示该项目仍处于早期阶段,版本之间可能存在破坏性变更。
标签
常见问题
- iced 是什么?
- 受 Elm 启发、面向 Rust 的跨平台 GUI 库,强调简洁与类型安全。 Iced 是一个 Rust GUI 库,采用类似 Elm 的架构来构建桌面和 Web 界面。界面被拆分为状态、消息、将状态渲染为控件的视图函数,以及根据消息更新状态的更新函数。布局和事件处理由库完成,应用代码只需描述界面展示什么、如何响应。
- iced 可以免费使用吗?用的什么许可证?
- iced 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- iced 还在维护吗?
- 活跃维护中。iced 最近一次提交是在 2026年10月21日。
- iced 适合用来做什么?
- 用纯 Rust 开发跨平台桌面应用 制作带原生风格界面的小型工具 将与渲染器无关的 GUI 运行时集成到现有系统中 在 Rust GUI 代码中实践 Elm 式架构
- iced 怎么安装和运行?
- 将 iced crate 添加到你的 Rust 项目中 阅读文档书籍、API 文档和示例以深入了解
- 在哪里获取 iced?
- 源代码和安装说明在 GitHub 上:https://github.com/iced-rs/iced
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
Slint 是一个声明式 GUI 工具包,用于在 Rust、C++、JavaScript 或 Python 应用中构建原生用户界面。
基于 GPUI 的 Rust 桌面 GUI 组件库,提供 75 个以上样式组件,用于构建跨平台应用。
基于 Rust 的原生跨平台 UI 引擎,可用 Rust 或 TSX 编写应用,并使用各平台原生控件渲染。
用纯 Rust 编写的开源图像编辑器,支持图层、蒙版、调整图层、文字、矢量和 PSD 文件。
用 Rust 编写的轻量原生 Spotify 桌面客户端,支持本地播放与 Spotify Connect,覆盖 Linux、macOS 和 Windows。