【Rust日报】rust-query - 类型安全的关系数据库查询

科技   2024-12-02 16:23   加拿大  

Rustlantis 差分随机测试工具

本文总结了Ralf的研究小组刚刚在OOPSLA会议上发表的一篇论文。该论文介绍了一种名为Rustlantis的差分随机测试工具,用于模糊测试Rust编译器的优化和代码生成。

Rustlantis通过随机生成MIR程序,并确保它们在不同的后端、优化级别和Miri模拟器下表现一致来发现编译器中的bugs。这项工作的核心部分是由Andy(Qian Wang)在他的硕士论文中完成的。尽管Andy后来已经有了正式工作,但他仍然在继续改进这项工作,最终成为了一篇很棒的论文。

总共发现了22个新的Rust编译器bugs,其中12个是在经过大量模糊测试的LLVM后端中发现的。文中提供了论文链接和Andy的演讲视频链接,供读者了解更多细节。

https://www.ralfj.de/blog/2024/11/25/rustlantis.html

imply-hack - 为你的trait添加隐含的边界条件

这个Rust crate imply_hack旨在通过添加Imply作为一个父trait来为你的trait添加隐含的边界条件。它解决了这个问题:假设你有一个trait MyTrait需要T实现某个trait Bound,而另一个trait FooUser又依赖于MyTrait,那么在使用FooUser的时候,就需要重复写T: Bound这个边界条件。imply_hack利用Rust 1.79新增的对关联类型的隐含边界条件支持,通过一些trait的巧妙设计,让你只需要声明trait MyTrait: Imply<T, Is: Bound>,就自动获得了T: Bound的边界条件约束,避免了重复编写。它简化了这种场景下的代码编写,提高了代码的可读性和维护性。

https://docs.rs/imply-hack

rust-query - 类型安全的关系数据库查询

这是一篇介绍 Rust 新数据库查询库 rust-query 的博文。主要内容包括:

  1. 作者认为现有的 Rust 数据库交互方式存在缺陷,因此开发了 rust-query 库。

  2. rust-query 深度集成了 Rust 的类型系统,提供了类型安全的关系数据库查询。

  3. 该库的主要特性包括:显式表别名、空安全性、直观聚合函数、类型安全外键导航、类型安全唯一查找、多版本模式、类型安全迁移、类型安全唯一冲突处理、行引用与事务生命周期绑定、封装的类型化行 ID 等。

  4. 博文展示了如何使用 rust-query 定义模式、插入和查询数据的示例代码。

  5. rust-query 旨在提供一种安全、类型友好的方式来与关系数据库交互,无需手写 SQL 查询。

https://blog.lucasholten.com/rust-query-announcement/

--

From 日报小组 Mike

社区学习交流平台订阅:

  • Rustcc论坛: 支持rss
  • 微信公众号:Rust语言中文社区


Rust语言中文社区
Rust官方及社区最新信息搜集、文章推送,教程学习,技巧分享,社区交流。信息来源是整个全球Rust社区。
 最新文章