< 返回版块

rust 日报 babpstep 发表于 2023-11-28 21:35

Tags:axum,Rustlantis,rustc_codegen_clr,.net

Axum 发布 0.7 版本

Axum 0.7.0 是一个构建在 Tokio、Tower 和 Hyper 之上的 Web 框架,新版主要变更点:

  1. 增加了对 Hyper 1.0 的支持。Hyper 1.0 对 API 进行了重大调整,移除了之前的高级API,并计划在新的 hyper-util 库中重新添加这些API。
  2. 引入了一个新的 axum::serve 函数来替代原有的 axum::Server,以简化启动过程。
  3. 推出了自己的 Body 类型来代替 http-body 库的功能。
  4. 为了简化路由配置,Axum 0.7.0 减少了泛型的使用,提供了更加清晰的中间件和请求处理方式。

开发者在升级过程中应注意与 tower-http 的兼容性,并可以通过查看变更日志来获取升级指南。

更新日志

Rustlantis:一个新的模糊测试器

Rustlantis 是来自 eth 的 Qian Wang 的毕业设计项目。

它是一个新的模糊器,能够生成在Rust的中间级别表示(Mid-level Intermediate Representation,MIR)中的程序,这些程序是确定性,且不含未定义行为。Rustlantis 已经发现了 Rust 编译器和 LLVM 中的 13 个以前未知的错误,这些错误导致了错误的编译和崩溃。

作者在论文中,介绍了他们如何使用语义模糊测试来找出 Rust 编译器中的错误。这种方法通过生成随机程序,编译它,并观察编译后的程序行为来工作。如果行为不正确,那么编译器中就存在一个错误。

Rustlantis 的设计保证了生成的程序具有可约简的控制流,这意味着生成的程序可以使用循环、if-else 和 break 语句来表示。此外,Rustlantis 还能确保所有的语句最多执行一次,所有的函数只进入一次。

该论文对 Rustlantis、其实现及其在发现 Rust 编译器和 LLVM 中的关键错误方面的有效性进行了彻底而详细的研究。 对发现的错误及其影响的详细分析,展示了此类模糊测试工具在确保编译器可靠性和程序正确性方面的重要性。

论文链接

rustc_codegen_clr:rustc 的 .NET 后端

FractalFir 分享了其 rustc 后端的更新,该后端允许将 Rust 代码编译为 .NET 程序集,从而使 Rust 库能在 C# 中使用,反之亦然。

作者在类型处理代码上进行了重大改进,支持了常量数据和切片,修复了许多错误,并对最终的 CIL(公共中间语言)代码进行了一些优化,提高了在 .NET 运行时内 Rust 代码的速度。

目前,该 codegen 能够编译核心库中的1000多个函数,尽管还有约300个函数无法正确编译。作者认为这是一个重要的里程碑,因为超过75%的核心库已经编译。

github仓库地址

-- From 日报小组 RustPlumber

社区学习交流平台订阅:

评论区

写评论
Bai-Jinlin 2023-11-30 11:15

axum基本上就是属于那个“集中打造”的了

--
👇
chunyunzhe: web框架太多了应接不暇,不如集中打造一个,不然到最后很多框架都要淘汰项目也跟着淘汰或重构,代价太大

chunyunzhe 2023-11-29 09:20

web框架太多了应接不暇,不如集中打造一个,不然到最后很多框架都要淘汰项目也跟着淘汰或重构,代价太大

1 共 2 条评论, 1 页