Dioxus 0.7 发布!单代码库搞定多平台开发,特色功能大揭秘!
[dioxus] 是一个支持全栈开发的跨平台应用框架。简单讲,它用 Rust 语言让你一套代码同时运行在网页、桌面和移动端。
项目地址:https://github.com/DioxusLabs/dioxus 主要语言:Rust Stars: 33.5k

仓库概述
Dioxus 是一个用于构建跨平台应用程序的框架,支持使用单一代码库构建适用于 Web、桌面、移动等多种平台的应用。它具有零配置设置、集成热重载和基于信号的状态管理等特性,还可以通过 Server Functions 添加后端功能,并使用其 CLI 进行打包。
核心功能
- 跨平台开发:只需少量代码,就能开发出支持 Web、桌面、移动、服务器等多平台的应用。
- 高效的状态管理:结合了 React、Solid 和 Svelte 的优点,提供符合人体工程学的状态管理方案。
- 全栈 Web 框架:内置功能丰富、类型安全的全栈 Web 框架。
- 集成打包工具:可将应用部署到 Web、macOS、Linux 和 Windows 等平台,且具备最大化优化功能。
- 快速热更新:支持亚秒级的 Rust 热补丁和资产热重载。
独特优势
- 即时热重载:使用
dx serve命令即可启动应用,修改标记和样式后能在毫秒级看到变化,还可通过dx serve --hotpatch实时更新 Rust 代码。 - 美观的应用构建:支持使用 HTML 和 CSS 进行样式设计,内置 TailwindCSS 支持,也可加载其他 CSS 库,还能轻松调用原生代码。
- 全栈应用支持:与 axum 深度集成,为客户端和服务器提供强大的全栈功能,还提供多种内置功能。
- 实验性原生渲染器:支持多种渲染方式,如 web - sys、webview、服务器端渲染等,甚至可以使用基于 WGPU 的渲染器,还能嵌入到 Bevy、WGPU 或在嵌入式 Linux 上运行。
- 丰富的原生组件:提供一套完整的原生组件,模仿 shadcn/ui 和 Radix - Primitives,方便快速开发。
- 一流的移动支持:是使用 Rust 构建原生移动应用的最快方式,可快速在模拟器或设备上运行应用,并能直接调用 JNI 和原生 API。
- 高效打包:使用
dx bundle命令可对应用进行构建和打包,在 Web 上可实现多种优化,能构建出体积较小的应用。 - 优质的文档:文档清晰、易读且全面,所有 HTML 元素和监听器都有 MDN 文档说明,并且会持续更新。
- 模块化和可定制性:可以构建自己的渲染器,也可使用社区渲染器,如 Freya,还提供多个模块化组件。
支持的平台
- Web:可直接使用 WebAssembly 渲染到 DOM,支持服务器端预渲染和客户端重新水化,'Hello World' 应用体积约 50kb,内置开发服务器和热重载功能。
- 桌面:可使用 Webview 或实验性的 WGPU、Freya 进行渲染,零配置,支持直接访问原生系统,支持 macOS、Linux 和 Windows,二进制文件体积小于 3mb。
- 移动:可使用 Webview 或实验性的 WGPU、Skia 进行渲染,能构建 iOS 和 Android 的应用文件,可直接调用 Java 和 Objective - C,能快速在设备上运行应用。


