Iced 是一个为 Rust 语言设计的开源跨平台 GUI(图形用户界面)库,受到 Elm 的架构启发。它以简洁易用、类型安全 (type-safe)、反应式 (reactive) API 为原则。

Iced 支持主流桌面系统 (Windows、macOS、Linux) 以及 Web,有响应式布局 (responsive layout)、内建控件 (widgets),也允许开发者创建自定义控件,此外还提供了模块化生态 —— 包含 renderer-agnostic runtime、多个 renderer(如基于 GPU 的 “wgpu”、或软件渲染的 “tiny-skia”)等,可根据场景选用合适方案。

打开网易新闻 查看精彩图片

该项目近日发布了主要 (major) 更新 Iced 0.14,下面是重要更新/新特性:

  • 新增 “reactive rendering”(响应式渲染)— 更好地支持 UI 的响应式更新。

  • 支持 “time-travel debugging” (时光旅行调试 / 回溯调试)— 允许开发者查看、回退/前进应用过去的状态序列,这对调试状态变化非常有帮助。

  • 支持 headless 测试 (headless testing)— 意味着可以在无 GUI 界面的环境下运行测试,这对于自动化测试更友好。

  • 改进对输入方法 (input methods) 的支持— 这是对多语言 (例如中文/日文等) 输入支持的重要增强。

  • 并发图像解码与上传 (concurrent image decoding and uploading)— 可提高在图像处理、加载时的性能和响应性。

  • 支持 “hot reloading” (热重载)— 在开发时无需重启应用,就能看到 UI/代码更改后的效果,加快开发迭代。

  • 支持 “smart scrollbars”(智能滚动条)、新增若干控件 (widgets) — 提供更丰富、更现代的用户界面构建能力。

Iced 因为其跨平台、响应式、类型安全、模块化等特点,在 Rust 社区里是较为受欢迎的 GUI 解决方案。

打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片

可以看到, 许多 Rust 应用已经开始使用它,知名 Linux 桌面环境 COSMIC 就是 Iced 的重要用户。

通过 0.14 的更新,Iced 在可用性 (usability)、调试能力 (debugging)、测试能力 (testing)、多语言输入、多媒体处理 (图像) 等多个维度都有显著增强,这可能进一步推动更多 Rust 项目采用 Iced。

下载地址:https://github.com/iced-rs/iced/releases/tag/0.14.0