Dioxus:用 Rust 构建跨平台全栈应用的一站式框架

你是否曾经为了同时开发 Web、桌面和移动端应用而不得不学习多套技术栈、维护多个代码库?Dioxus 的出现,旨在彻底解决这个问题。它是一个用 Rust 编写的全栈应用框架,可以让开发者用单一代码库构建 Web、桌面、移动端甚至服务器应用,并享受零配置、热重载和基于信号的状态管理。本文将带你全面了解这个潜力新星。

截至收录:
Dioxus项目stars数:39158
Dioxus项目forks数:1889

Dioxus项目目录截图

Dioxus项目核心亮点

  • 🌟 真正的跨平台开发:只需三行代码,即可将应用部署到 Web、桌面、移动端和服务器。零配置启动,支持 macOS、Linux、Windows、Android 和 iOS,真正实现“一次编写,处处运行”。
  • ⚡ 极速热重载:内置 dx serve 命令,编辑标记和样式后毫秒级刷新。实验性的 --hotpatch 选项甚至能实时更新 Rust 代码,让开发体验如丝般顺滑。
  • 🧠 符合直觉的状态管理:融合 React、Solid 和 Svelte 的优点,基于信号(Signals)的状态管理让数据流更清晰、更高效,同时保持类型安全。
  • 🔋 深度全栈能力:与 Axum 深度集成,提供服务器函数、WebSocket、SSE、流式传输、文件上传下载、SSR、表单、中间件等开箱即用的功能,轻松构建全栈应用。
  • 📦 一体化工具链:自带 CLI 工具,运行 dx bundle 即可打包,Web 应用小于 50KB,桌面/移动应用小于 5MB。支持 AVIF 生成、WASM 压缩、代码最小化等优化。
  • 📱 一流的移动端支持:直接调用 JNI 和原生 API,dx serve --platform android 即可在模拟器或真机上运行,是构建 Rust 移动应用的最快方式。
  • 📚 完善的文档与社区:所有 HTML 元素和监听器均配有 MDN 文档,文档与框架同步持续集成。社区活跃,Discord 和 GitHub 上随时可以获得帮助,还有官方支持的优质 crate 生态。

Dioxus项目快速开始

只需几步,你就能在本地运行起 Dioxus:

  1. 安装 Dioxus CLI:
    bash
    # 使用官方安装脚本
    curl -fsSL https://dioxuslabs.com/install.sh | bash

    或者使用 cargo-binstall:
    bash
    cargo binstall dioxus-cli
  2. 运行一个示例(克隆仓库后):
    bash
    git clone https://github.com/DioxusLabs/dioxus
    cd dioxus
    dx serve --example hello-world

    如果你已经创建了自己的项目,也可以直接:
    bash
    dx new my-app
    cd my-app
    dx serve
  3. 体验热重载:编辑 src/main.rs 中的代码,保存后浏览器会自动刷新。试试修改经典的计数器示例:
    “`rust
    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!" }
    }
    

    }
    “`

Dioxus项目应用场景

  • 场景一:跨平台工具开发:开发者可以使用 Dioxus 编写一次代码,同时发布为 Web 应用、Windows/macOS/Linux 桌面程序和 Android/iOS 移动应用,极大降低维护成本。
  • 场景二:全栈 Web 应用:借助内置的服务器函数和 Axum 集成,前端和后端可以共享类型和逻辑,轻松构建实时聊天、仪表盘、电子商务等应用。
  • 场景三:移动端原生应用:直接调用 Java 和 Objective-C API,以极低的开销构建高性能移动应用,从“hello world”到真机运行仅需数秒。
  • 场景四:嵌入式与实验性渲染:Dioxus 支持 WGPU 和 Skia 渲染,甚至可以嵌入 Bevy 游戏引擎或运行在嵌入式 Linux 上,为物联网和游戏开发提供新可能。
  • 用户案例:Dioxus 社区活跃,已被众多开发者和团队用于生产环境。项目获得了 FutureWei、Satellite.im 等公司的赞助,并入选 GitHub Accelerator 计划,其生态中的优质 crate 也得到了官方支持。

Dioxus项目链接

DioxusLabs / dioxus项目地址:https://github.com/DioxusLabs/dioxus

本文地址:https://www.tgoos.com/46523

声明:本站资源均整理自互联网,版权归原作者所有,仅供学习交流使用,请勿直接商用,若需商用请购买正版授权。因违规使用产生的版权及法律责任由使用者自负。部分资源可能包含水印或引流信息,请自行甄别。若链接失效可联系站长尝试补链。若侵犯您的权益,请邮件(将 # 替换为 @)至 feedback#tgoos.com,我们将及时处理删除。转载请保留原文链接,感谢支持原创。