Dioxus:三行代码开发跨平台应用,多平台支持与全栈功能助力高效开发!

📅 2026/7/22 19:16:32 👁️ 阅读次数 📝 编程学习
Dioxus:三行代码开发跨平台应用,多平台支持与全栈功能助力高效开发!

独特优势,开启开发新体验

利用单一代码库,就能为 Web、桌面端、移动端等平台进行开发。它具备零配置设置,集成了热重载功能,还采用基于信号的状态管理。通过 Server Functions 可添加后端功能,使用 CLI 进行打包。

fn app() -> Element {
let mut count = use_signal(|| 0);
rsx! {
h1 { "High-Five counter: {count}" }
button { onclick: move |_| count += 1, "Up high!" }
button { onclick: move |_| count -= 1, "Down low!" }
}
}

特性亮点,助力高效开发

  • 三行代码开发跨平台应用:可在 Web、桌面端、移动端、服务器等多个平台使用。
  • 人性化的状态管理:融合了 React、Solid 和 Svelte 的优点。
  • 内置功能丰富、类型安全的全栈 Web 框架
  • 集成打包工具:能部署到 Web、macOS、Linux 和 Windows 系统。
  • 亚秒级 Rust 热补丁和资源热重载:还有更多特性!快来体验 Dioxus 吧。

即时热重载,快速看到效果

只需一个命令 `dx serve`,应用就能运行起来。编辑标记和样式,瞬间就能看到更改效果。还可以使用实验性的 `dx serve --hotpatch` 实时更新 Rust 代码。

构建精美应用,实现原生体验

Dioxus 应用使用 HTML 和 CSS 进行样式设计。可以使用内置的 TailwindCSS 支持,也可以加载喜欢的 CSS 库。还能轻松调用原生代码(Objective-C、JNI、Web-Sys),实现完美的原生体验。

真正的全栈应用,功能强大灵活

Dioxus 与 axum 深度集成,为客户端和服务器提供强大的全栈功能。可以选择众多内置功能,如 WebSockets、SSE、流式传输、文件上传/下载、服务器端渲染、表单、中间件和热重载,也可以完全自定义并集成现有的 axum 后端。

实验性原生渲染器,多样渲染选择

可以使用 web-sys、webview、服务器端渲染、liveview 进行渲染,甚至还能使用基于 WGPU 的实验性渲染器。可以将 Dioxus 嵌入 Bevy、WGPU 中,甚至在嵌入式 Linux 上运行!

一流的原生组件,加速开发进程

借助一套完整的、仿照 shadcn/ui 和 Radix-Primitives 设计的原生组件,可快速开启开发之旅。

一流的 Android 和 iOS 支持,秒级运行体验

Dioxus 是使用 Rust 构建原生移动应用的最快方式。只需运行 `dx serve --platform android`,应用就能在模拟器或设备上秒级运行。还能直接调用 JNI 和原生 API。

为多平台打包,优化构建成果

只需运行 `dx bundle`,应用就会以最大化优化的方式进行构建和打包。在 Web 端,还能利用 .avif 生成、.wasm 压缩、代码压缩等功能。构建小于 50kb 的 Web 应用,以及小于 5mb 的桌面/移动应用。

出色的文档,持续更新保障

投入大量精力构建了清晰、易读且全面的文档。所有 HTML 元素和监听器都有 MDN 文档的详细说明,并且文档会与 Dioxus 本身进行持续集成,以确保始终保持最新。访问 Dioxus 网站,可查看指南、参考资料、使用示例等内容。有趣的是,将 Dioxus 网站作为新功能的测试平台,快来看看吧!

社区支持,共同发展进步

Dioxus 是一个社区驱动的项目,拥有活跃的 Discord 和 GitHub 社区。一直欢迎大家的参与和帮助,也乐于回答问题并协助入门。SDK 由社区维护,甚至还有一个 GitHub 组织专门管理优秀的 Dioxus crate,这些 crate 可获得免费升级和支持。

全职核心团队,推动长期发展

Dioxus 已从一个业余项目发展成为一个由全职工程师组成的小团队。得益于 FutureWei、Satellite.im 和 GitHub Accelerator 项目的慷慨支持,能够全职投入到 Dioxus 的开发中。长期目标是通过提供高质量的付费企业工具,使 Dioxus 实现自我维持。如果公司有兴趣采用 Dioxus 并希望合作,请联系!

支持的平台,广泛覆盖应用

  • Web:使用 WebAssembly 直接渲染到 DOM,支持服务器端预渲染和客户端重新水化。简单的“Hello World”应用约 50kb,与 React 相当。内置开发服务器和热重载功能,方便快速迭代。
  • 桌面端:使用 Webview 进行渲染,也可以实验性地使用 WGPU 或 Freya(Skia)。零配置设置,只需运行 `cargo run` 或 `dx serve` 即可构建应用。完全支持原生系统访问,无需 IPC。支持 macOS、Linux 和 Windows 系统。可生成小于 3mb 的可移植二进制文件。
  • 移动端:使用 Webview 进行渲染,也可以实验性地使用 WGPU 或 Skia。为 iOS 和 Android 构建 .ipa 和 .apk 文件。能直接调用 Java 和 Objective-C 代码,开销极小。从“Hello World”到在设备上运行只需几秒钟。
  • 服务器端渲染:支持 Suspense、水化和服务器端渲染。通过 Server Functions 快速添加后端功能。支持提取器、中间件和路由集成。支持静态网站生成和增量再生。

运行示例,操作指引清晰

本仓库主分支中的示例针对的是 dioxus 的 git 版本和 CLI。如果想查找与 dioxus 最新稳定版本兼容的示例,请查看 0.6 分支。本仓库顶级目录中的示例可以使用以下命令运行:`cargo run --example`。不过,建议下载 dioxus-cli 以测试热重载等功能。要安装最新的二进制 CLI,可以使用 `cargo binstall`:

curl -fsSL https://dioxuslabs.com/install.sh | bash

如果这个 CLI 版本过旧,可以直接从 git 或 `cargo-binstall` 进行安装:

cargo install --git https://github.com/DioxusLabs/dioxus dioxus-cli --locked

使用 CLI,还可以在 Web 平台上运行示例。需要使用以下命令禁用默认的桌面端功能并启用 Web 功能:

dx serve --example --platform web -- --no-default-features

贡献代码与许可证说明

查看网站上关于贡献代码的部分。在问题跟踪器上报告问题。加入 Discord 社区提问!本项目采用 MIT 许可证或 Apache 许可证。除非明确说明,否则有意提交到 Dioxus 的任何贡献都将按照 MIT 或 Apache-2 许可证进行授权,无需额外的条款和条件。