【Rust日报】Dioxus 用起来有趣吗?

公告《Cargo v1.92 开发周期总结》

  • 插件亮点:cargo-wizard被选为本周期的插件,可优化项目构建时间、运行时性能或二进制大小。

  • 构建性能指南:在Zulip上,Kobzol提出为Cargo book添加构建性能指南。指南在#15970中被引入,旨在帮助开发者优化构建性能。

  • Cargo Script :epage发布了Rust前置语法的稳定化报告,这是稳定化Cargo Script的第一步。Cargo的前置语法解析器也更新以更好地匹配rustc的空白处理(#15975)和错误消息(#15952,#15972)。Cargo Script切换到使用build-dir,并将其Cargo.lock移至build-dir

  • 公共依赖 :sadmac7000在#15966中更改了cargo add的版本自动选择,以评估公共依赖。JohnScience提议cargo tree --edges no-external以仅显示本地包,团队还重新评估了--depth public,最终将其改为--edges public(#16081)。

  • 构建目录布局:Cargo的缓存传统上围绕其功能组织,但这种布局存在一些问题,如难以进行垃圾回收、协调更细粒度的锁、跨项目缓存构建单元工件等。新的布局提议以构建单元为中心组织中间构建工件,而不是文件的角色。新布局在#15947中实现。

  • 其他工作:epage继续将Cargo消息迁移到annotate-snippets(#15942,#15943,#15945)。weihanglo发布了Cargo的结构化持久化日志支持(#16150)。

  • 未取得进展的焦点领域:包括开放命名空间、默认功能禁用、特性元数据等。

  • 如何提供帮助:如果有关于改进Cargo的想法,建议先查看问题列表,然后在内部讨论区探索想法。

阅读:https://blog.rust-lang.org/inside-rust/2025/11/24/this-development-cycle-in-cargo-1.92/

文章《改进 Cargo features 以减少对编译时间的影响》

文章探讨了 Rust 中 Cargo 特性对编译时间的影响,提出了改进方向:

  • Cargo 特性的作用:Rust 包可通过定义特性来包含可选依赖,用户可选择启用或禁用这些特性,以减少不必要的代码编译。

  • 默认特性的问题:默认特性在未明确指定时会被自动启用,且无法单独禁用,只能全部禁用后手动启用其他特性,这可能导致不必要的代码被编译。

  • 传递依赖的特性问题:当前无法直接配置传递依赖的特性,需要通过定义映射特性来间接实现,这在依赖关系复杂时会导致特性数量指数级增长。

  • 改进建议

    • 提供手动禁用单个默认特性的机制(低影响、低难度)。

    • 提供更简洁的方式让库暴露直接依赖的特性(低影响、中等难度)。

    • 允许禁用传递依赖的特性(低影响、中等难度)。

    • 实现"零配置"特性,自动为库中的每个模块或项定义特性(高影响、高难度)。

文章《Dioxus 用起来有趣吗?》

  • Dioxus 介绍:Dioxus 是一个 Rust 框架,目标是实现移动、Web 和桌面应用的单代码库开发,类似于 React Native 或 PhoneGap。

  • 历史回顾:文章回顾了 Web 应用的发展历程,从服务器端渲染 HTML 到客户端渲染,再到如今的全栈渲染(服务端渲染并流式传输给客户端)。

  • Dioxus 的工作方式:通过服务端渲染 HTML 并发送结构化数据,客户端接收后进行"水合"(hydratation),即安装事件处理器并接管文档。

  • 数据加载问题 :Dioxus 提供多种钩子(如 use_futureuse_context 等)来解决异步数据加载问题,但钩子的复杂性较高,容易导致难以调试的行为。

  • 开发体验:作者最初对 Dioxus 的开发体验感到不满,但深入了解后发现许多问题已得到解决或正在修复中。例如,主分支已添加错误显示功能,Chrome 扩展可提供更友好的调试支持。

  • 结论:Dioxus 尚未完全成熟,但其目标和潜力令人兴奋。作者期待 Dioxus 和 WebAssembly 前端生态在开发体验上赶上 JavaScript 解决方案。

阅读:https://fasterthanli.me/articles/does-dioxus-spark-joy

Symbolica 1.0 发布:Rust 中的符号数学运算

今天,Symbolica 1.0 正式发布啦!🎉🎉🎉 Symbolica 是一个适用于 Rust 和 Python 的符号和数值数学库。

同时,从 Symbolica 中提取出来的 Numerica 和 Graphica 库也正式发布,这两个库采用 MIT 许可,共包含 18.5k 行开源代码。

在博客文章中,我展示了这三个 crate 的功能,Rust trait 系统对于编写数学抽象非常有用,Symbolica 如何处理全局状态,以及我们如何解决 Python 的交付问题。

讨论:安全性+数学证明(形式化验证)?

讨论:https://www.reddit.com/r/rust/comments/1p5l70n/safetymathematical_proof/

--

From 日报小组 苦瓜小仔

社区学习交流平台订阅:

  • Rustcc论坛: 支持rss

  • 微信公众号:Rust语言中文社区

相关推荐
.小墨迹几秒前
C++学习之std::move 的用法与优缺点分析
linux·开发语言·c++·学习·算法·ubuntu
努力学习的小廉几秒前
【QT(五)】—— 常用控件(二)
开发语言·qt
wanghowie1 分钟前
01.02 Java基础篇|核心数据结构速查
java·开发语言·数据结构
|晴 天|7 分钟前
前端闭包:从概念到实战,解锁JavaScript高级技能
开发语言·前端·javascript
9号达人10 分钟前
支付成功订单却没了?MyBatis连接池的坑我踩了
java·后端·面试
点云SLAM16 分钟前
C++ error C2065: “M_PI”: 未声明的标识符 解决方案
开发语言·c++·error c2065·m_pi未声明 解决方案
qq_3363139320 分钟前
java基础-stream流练习
java·开发语言·python
用户4973573379822 分钟前
【轻松掌握通信协议】C#的通信过程与协议实操 | 2024全新
后端
草莓熊Lotso22 分钟前
C++11 核心精髓:类新功能、lambda与包装器实战
开发语言·c++·人工智能·经验分享·后端·nginx·asp.net
EniacCheng27 分钟前
【RUST】学习笔记-整型
笔记·学习·rust