Github 官方博客:Dependabot 支持 Rust 工具链
- 新功能:Dependabot 现在可以自动更新 Rust 项目中定义在
rust-toolchain.toml
和rust-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 变得更省心、更安全,主要解决参数绑定的痛点。核心亮点如下:
-
类模板字符串的写法
在 SQL 字符串里直接写{变量}
、{对象.字段}
,宏自动展开成对应占位符(PostgreSQL 的$N
或 MySQL 的?
),并把变量值按顺序收集起来。
支持数组/切片展开{..vec}
,一次性绑定多个值。 -
元组展开与批量插入
使用{tuple.0:2}
语法可把元组字段展开成多个占位符;再配合{..(tuple.0:2),}
即可把Vec<(T, U, V)>
直接变成VALUES (…),(…),(…)
的批量插入语句。 -
零开销 SQLx 集成
在sqlx
中可直接sea_query::sqlx::sqlite::query!(sql = "...")
,宏生成的String
由变量sql
持有,SQLx 以引用方式使用,无额外拷贝。 -
技术实现
采用过程宏而非macro_rules
,以突破卫生限制;先一次性解析 SQL 模板,再调用RawSqlQueryBuilder
生成带占位符的 SQL 和绑定代码,最后通过 SQLx 的bind
完成参数绑定。 -
现状与生态
该功能是 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_specialization
和 specialization
功能之间的实际区别是什么?
“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 日报小组 苦瓜小仔
社区学习交流平台订阅:
评论区
写评论还没有评论