DioxusLabs/dioxus

GitHub: DioxusLabs/dioxus

一个基于 Rust 的全栈跨平台应用框架,支持用单一代码库构建 Web、桌面和移动端应用。

Stars: 34964 | Forks: 1565


Crates.io version Download docs.rs docs CI status Awesome Page Discord Link

网站 | 示例 | 教程 | 中文 | PT-BR | 日本語 | Türkçe | 한국어


✨ Dioxus 0.7 发布了!!! ✨


使用单一代码库构建 Web、桌面、移动端及更多平台的应用。零配置设置,集成的热重载(hot-reloading),以及基于信号(signals)的状态管理。通过 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、桌面、移动端、服务器等) - [符合人体工程学的状态管理](https://dioxuslabs.com/blog/release-050) 融合了 React、Solid 和 Svelte 的优点 - 内置功能丰富、类型安全的全栈 Web 框架 - 集成打包工具,支持部署到 Web、macOS、Linux 和 Windows - 亚秒级 Rust 热修补和资源热重载 - 以及更多![浏览 Dioxus 概览](https://dioxuslabs.com/learn/0.7/)。 ## 即时热重载 只需一个命令 `dx serve`,你的应用即可运行。编辑你的标记、样式,并在几毫秒内看到变化。使用我们的实验性 `dx serve --hotpatch` 实时更新 Rust 代码。
## 构建精美的应用 Dioxus 应用使用 HTML 和 CSS 进行样式设计。可以使用内置的 TailwindCSS 支持,或加载你喜欢的 CSS 库。轻松调用原生代码(objective-c、JNI、Web-Sys)以获得完美的原生体验。
## 真正的全栈应用 Dioxus 与 [axum](https://github.com/tokio-rs/axum) 深度集成,为客户端和服务器提供强大的全栈功能。从大量内置功能中进行选择,如 WebSockets、SSE、Streaming、文件上传/下载、服务器端渲染、表单、中间件和热重载,或者完全自定义并集成你现有的 axum 后端。
## 实验性原生渲染器 使用 web-sys、webview、服务器端渲染(server-side-rendering)、liveview,甚至我们基于 WGPU 的实验性渲染器进行渲染。将 Dioxus 嵌入到 Bevy、WGPU 中,甚至在嵌入式 Linux 上运行!
## 第一方基础组件 使用一套完整的基础组件快速入门,这些组件模仿 shadcn/ui 和 Radix-Primitives 设计。
## 一流的 Android 和 iOS 支持 Dioxus 是使用 Rust 构建原生移动应用的最快方式。只需运行 `dx serve --platform android`,你的应用就会在几秒钟内在模拟器或设备上运行。直接调用 JNI 和 Native API。
## 为 Web、桌面和移动端打包 只需运行 `dx bundle`,你的应用就会被构建并打包,并应用最大化优化。在 Web 上,可以利用 [`.avif` 生成、`.wasm` 压缩、代码压缩](https://dioxuslabs.com/learn/0.7/tutorial/assets)等功能。构建重量 [小于 50kb](https://github.com/ealmloff/tiny-dioxus/) 的 Web 应用,以及小于 5mb 的桌面/移动应用。
## 极佳的文档 我们投入了大量精力来构建清晰、可读且全面的文档。所有 HTML 元素和监听器都附有 MDN 文档,我们的文档通过持续集成与 Dioxus 本身一起运行,以确保文档始终是最新的。查看 [Dioxus 网站](https://dioxuslabs.com/learn/0.7/) 获取指南、参考、食谱等。趣闻:我们将 Dioxus 网站用作新 Dioxus 功能的测试平台 - [来看看吧!](https://github.com/dioxusLabs/docsite)
## 模块化与可定制 构建你自己的渲染器。使用我们的模块化组件,如 RSX、VirtualDom、Blitz、Taffy 和 Subsecond。 ## 全职核心团队 Dioxus 已从一个副业项目成长为一个由全职工程师组成的小团队。感谢 FutureWei、Satellite.im、GitHub Accelerator 计划的慷慨支持,我们能够全职开发 Dioxus。我们的长期目标是通过提供付费的高质量企业工具,使 Dioxus 实现自我维持。如果您的公司有兴趣采用 Dioxus 并希望与我们合作,请联系我们! ## 支持的平台
Web
  • 使用 WebAssembly 直接渲染到 DOM
  • 使用 SSR 进行预渲染并在客户端进行注水
  • 简单的“hello world”大约 50kb,与 React 相当
  • 内置开发服务器和热重载,便于快速迭代
Desktop
  • 使用 Webview 或 - 实验性地 - 使用 WGPU 或 Freya (Skia) 进行渲染
  • 零配置设置。只需 `cargo run` 或 `dx serve` 即可构建你的应用
  • 完全支持无需 IPC 的原生系统访问
  • 支持 macOS、Linux 和 Windows。可移植的 <3mb 二进制文件
Mobile
  • 使用 Webview 或 - 实验性地 - 使用 WGPU 或 Skia 进行渲染
  • 为 iOS 和 Android 构建 .ipa 和 .apk 文件
  • 以最小的开销直接调用 Java 和 Objective-C
  • 从“hello world”到在设备上运行只需几秒钟
Server-side Rendering
  • Suspense、注水和服务器端渲染
  • 通过 server functions 快速加入后端功能
  • 提取器、中间件和路由集成
  • 静态站点生成和增量再生
## 运行示例 此仓库顶层的示例可以通过以下方式运行: ``` cargo run --example ``` 但是,我们鼓励你下载 dioxus-cli 以测试热重载等功能。要安装最新的二进制 CLI,你可以使用 cargo binstall。 ``` cargo binstall dioxus-cli@0.7.0 --force ``` 如果此 CLI 已过时,你可以直接从 git 安装 ``` cargo install --git https://github.com/DioxusLabs/dioxus dioxus-cli --locked ``` 使用 CLI,你也可以在 Web 平台上运行示例。你需要使用以下命令禁用默认的桌面功能并启用 Web 功能: ``` dx serve --example --platform web -- --no-default-features ``` ## 许可证 本项目根据 [MIT license] 或 [Apache-2 License] 授权。 除非你明确声明,否则你有意提交给 Dioxus 的任何贡献,均应按 MIT 或 Apache-2 授权,无需任何附加条款或条件。
标签:AI工具, Crates.io, Dioxus, DNS解析, GUI开发, React风格, Rust语言, Syscall, WASM, Web开发, 可视化界面, 响应式UI, 多模态安全, 应用开发工具, 开源项目, 桌面应用, 移动应用, 跨平台框架, 通知系统, 通知系统