< 返回版块

苦瓜小仔 发表于 2025-07-05 13:44

Tags:日报

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 日报小组 苦瓜小仔

社区学习交流平台订阅:

评论区

写评论

还没有评论

1 共 0 条评论, 1 页