Github CodeQL 支持 Rust 语言检测
CodeQL 代码扫描支持扩展至 Rust。Rust 库和应用的开发者现在可以从我们一流的代码安全分析中受益。
目前,我们已识别出路径、SQL 和正则表达式注入、大量加密滥用以及其他类型的不安全用户数据使用等问题。
在预览期间,我们将扩大对特定漏洞的覆盖范围。
CodeQL 是 Github 的一项安全服务,对你的仓库中的 C/C++、Java/Kotlin、JS/TS、Python、Ruby、C#、Go、GitHub Actions、Swift、Rust 代码进行扫描,并运行数百项代码检查,同时保持较低的误报率和较高的准确率。
阅读:https://github.blog/changelog/2025-06-30-codeql-support-for-rust-now-in-public-preview/
Redox OS:6 月进展
Redox 是一个基于 Rust 的类 Unix 微内核操作系统。6 月亮点包括:
- 获得 NLnet/NGI Zero 的两项资助,分别用于能力安全性和类似 io_uring 的异步 IO 功能。
- 招募兼职构建/CI 工程师,负责监控构建和 CI,修复问题,并参与文档编写和系统改进。
- 在 Wayland 支持方面取得进展,实现了 Unix 域套接字中文件描述符的发送功能。
- 在 RustConf 2025 上将展示 Redox 与 Rust 的十年历程及未来愿景。
- 系统改进包括内核优化、文件系统性能提升、网络启动支持等。
- 包管理器、构建系统、文档和网站也进行了多项改进。
- 鼓励社区成员通过 Matrix Chat 参与贡献和反馈。
阅读:https://www.redox-os.org/news/this-month-250630/
Reddit:https://www.reddit.com/r/rust/comments/1lrmzxe/this_month_in_redox_june_2025/
Dynify:无堆分配的 dyn Trait
动态分发库,并在 Stable Rust 上使用
dynify
是一个专注于动态调度的 Rust 库,通过提供支持动态分发的 trait objecs (比如 dyn DynAsyncRead
) 和原地初始化功能,解决了异步 trait 在动态调度中的问题,同时保持了对稳定版 Rust 的支持。
功能特点:
- dyn compatible:为异步 trait 生成 dyn compatible 变体,从而支持动态调度。
- 原地初始化:提供了安全的 in-place initialization proposal API,避免了堆分配,适合资源受限的环境。
- 稳定版 Rust:与依赖夜间版 Rust 的其他库不同,
dynify
完全基于稳定版 Rust。
对比其他项目:
- 与
pin-init
的对比:pin-init
提供了结构体的原地构造方法,但依赖夜间版 Rust 的特性。dynify
则专注于 dyn compatible,且完全基于稳定版 Rust。 - 与
async-trait
的对比:async-trait
是另一个用于动态调度异步 trait 的库,但它需要堆分配来存储 trait objects,而dynify
支持栈分配。
use dynify::{from_fn, Dynify, Fn};
use std::future::Future;
trait AsyncRead {
async fn read_to_string(&mut self) -> String;
}
trait DynAsyncRead {
fn read_to_string(&mut self) -> Fn!(&mut Self => dyn '_ + Future<Output = String>);
}
impl<T: AsyncRead> DynAsyncRead for T {
fn read_to_string(&mut self) -> Fn!(&mut Self => dyn '_ + Future<Output = String>) {
from_fn!(T::read_to_string, self)
}
}
async fn dynamic_dispatch(reader: &mut dyn DynAsyncRead) {
/* some mysterious code */
}
仓库:https://github.com/loichyan/dynify
Reddit:https://www.reddit.com/r/rust/comments/1lrxvb1/announcing_dynify_pininit_trait_objects_on_the/
Tinykv:轻量级嵌入式键值存储数据库
tinykv
是一个轻量级的 Rust 文件支持键值存储引擎,支持可选的 TTL(Time-to-Live)、原子保存和 JSON 格式持久化。
它适用于配置存储、CLI 应用、原型开发、测试等场景,支持
- ✅ 支持 JSON 文件存储(可读性强)
- ✅ 基于
serde
的序列化 - ✅ 每个条目支持可选的 TTL(生存时间)
- ✅ 每次写入后自动保存(可选)
- ✅ 支持创建备份文件(可选)
- ✅ 原子写入安全性(使用
.tmp
文件和重命名机制) - ✅ 在对象被销毁时安全保存
- ✅ 经过完整测试,使用临时文件隔离
使用简单,基于 serde
序列化,支持 JSON 文件存储,完全测试且文档齐全,采用 MIT 许可证。
仓库:https://github.com/hsnyildiz/tinykv
Reddit:https://www.reddit.com/r/rust/comments/1lrupvr/tinykv_a_minimal_filebacked_keyvalue_store_i_just/
文章《Git 高手应该尝试使用 Jujutsu/jj 来操作历史提交》
作者:pksunkara
作者是一位 Git 高级用户,熟练掌握各种复杂操作。
然而,在尝试了 Jujutsu(jj,一种新的版本控制系统)后,他发现其在历史操作上比 Git 更高效、更直观。
例如,编辑旧提交、拆分提交和创建 PR 的过程都大大简化,减少了繁琐的步骤。
最终,作者认为 Jujutsu 是 Git 的有力补充,强烈推荐其他 Git 高手尝试,以提升工作效率。
阅读:https://pksunkara.com/thoughts/git-experts-should-try-jujutsu/
Reddit:https://www.reddit.com/r/rust/comments/1lr6sap/git_experts_should_try_jujutsu_written_in_rust/
jj 仓库:https://github.com/martinvonz/jj
jj 教程:https://steveklabnik.github.io/jujutsu-tutorial/
讨论:如何组织 mono repo 的 Rust 项目结构
阅读:https://www.reddit.com/r/rust/comments/1lra6h4/structuring_a_rust_mono_repo/
--
From 日报小组 苦瓜小仔
社区学习交流平台订阅:
评论区
写评论还没有评论