< 返回版块

苦瓜小仔 发表于 2025-11-25 12:03

Tags:日报

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

  • 插件亮点cargo-wizard被选为本周期的插件,可优化项目构建时间、运行时性能或二进制大小。
  • 构建性能指南:在Zulip上,Kobzol提出为Cargo book添加构建性能指南。指南在#15970中被引入,旨在帮助开发者优化构建性能。
  • Cargo Scriptepage发布了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 日报小组 苦瓜小仔

社区学习交流平台订阅:

评论区

写评论

还没有评论

1 共 0 条评论, 1 页