< 返回版块

苦瓜小仔 发表于 2025-08-21 13:33

Tags:日报

Github 官方博客:Dependabot 支持 Rust 工具链

  • 新功能:Dependabot 现在可以自动更新 Rust 项目中定义在 rust-toolchain.tomlrust-toolchain 文件中的工具链版本。这包括稳定版、测试版和夜间版的最新版本更新,但不包括安全更新。
  • 支持的更新模式
    • 版本化的工具链(例如 channel = "1.xx.yy"channel = "1.xx"
    • 日期化的工具链(例如 channel = "nightly-YYYY-MM-DD"channel = "beta-YYYY-MM-DD"
  • 启用 Rust 工具链更新:在项目的 .github/dependabot.yml 文件中添加 rust-toolchain 配置。具体的配置选项和示例可以参考 Dependabot 的配置选项文档。

阅读:https://github.blog/changelog/2025-08-19-dependabot-now-supports-rust-toolchain-updates/

文章《SeaQuery 让编写 SQL 更愉快》

SeaQuery 发布了一个全新的 raw_query! 宏,旨在让手写原始 SQL 变得更省心、更安全,主要解决参数绑定的痛点。核心亮点如下:

  1. 类模板字符串的写法
    在 SQL 字符串里直接写 {变量}{对象.字段},宏自动展开成对应占位符(PostgreSQL 的 $N 或 MySQL 的 ?),并把变量值按顺序收集起来。
    支持数组/切片展开 {..vec},一次性绑定多个值。

  2. 元组展开与批量插入
    使用 {tuple.0:2} 语法可把元组字段展开成多个占位符;再配合 {..(tuple.0:2),} 即可把 Vec<(T, U, V)> 直接变成 VALUES (…),(…),(…) 的批量插入语句。

  3. 零开销 SQLx 集成
    sqlx 中可直接 sea_query::sqlx::sqlite::query!(sql = "..."),宏生成的 String 由变量 sql 持有,SQLx 以引用方式使用,无额外拷贝。

  4. 技术实现
    采用过程宏而非 macro_rules,以突破卫生限制;先一次性解析 SQL 模板,再调用 RawSqlQueryBuilder 生成带占位符的 SQL 和绑定代码,最后通过 SQLx 的 bind 完成参数绑定。

  5. 现状与生态
    该功能是 SeaQuery 1.0-rc 的一部分,与 SeaORM、Seaography 等 SeaQL 项目共同构成 Rust 数据库工具链。官方还提供贴纸包为社区筹集开发资金。

Typed-arrow:Rust 的编译时 Arrow schemas

typed-arrow 提供了一种强类型、完全编译时的方式来在 Rust 中声明 Arrow 模式。它将 Rust 类型直接映射到 arrow-rs 类型的构建器/数组和 arrow_schema::DataType 无需任何运行时 DataType 切换——从而实现了零运行时成本、单态列构造和类似 ORM 的人体工程学 API。

为什么要使用编译时 Arrow?

  • 性能:单态构建器/数组,零动态调度;避免运行时 DataType 匹配。
  • 安全性:列类型、名称和可空性存在于类型系统中;不匹配会在编译时失败。
  • 互操作:直接使用 arrow-array / arrow-schema 类型;无需学习定制的运行时层。

仓库:https://github.com/tonbo-io/typed-arrow

讨论:min_specializationspecialization 功能之间的实际区别是什么?

“min_specialization 是 sound 的,只要你不特化实现标有 rustc_unsafe_specialization_marker 的 trait。值得注意的是, Copy 就是这样一种 trait。 而 specialization 是非常不健全的。”

Reddit:https://www.reddit.com/r/rust/comments/1mu1ibh/what_is_the_practical_difference_between_the_min/

--

From 日报小组 苦瓜小仔

社区学习交流平台订阅:

评论区

写评论

还没有评论

1 共 0 条评论, 1 页