【Rust日报】Axum 0.8发布

科技   2025-01-10 23:22   重庆  

Axum 0.8发布

Axum 是一个基于Rust的Web框架,结合了Tokio、Tower和Hyper的功能。

路径参数语法更新:路径参数的语法从旧的/:single和/*many变成了新的/{single}和/{*many}。这一改动是为了支持更灵活的路由定义,特别是当路径包含冒号或星号时。新的语法与format!宏和OpenAPI描述一致。

可选提取器(Option)的改进:之前的版本中,Option提取器会无视来自T提取器的任何拒绝(rejection),将其转为None。在0.8.0版本中,Option提取器要求T实现新的OptionalFromRequestParts或OptionalFromRequest特质,这允许提取器处理来自T的拒绝并将其转化为错误响应,同时仍支持可选提取。

这些变化意味着对现有代码的重大影响,但它们旨在提供更一致、更强大的路由和请求处理能力。文章还提到了相关的迁移示例和相关的GitHub pull请求,鼓励用户参考这些资源以完成升级。此外,文章感谢了社区贡献者,特别是那些在实现这些新功能上付出努力的开发者。

总的来说,Axum 0.8.0版本的发布标志着该框架在设计和功能上的显著进展,特别是对于需要复杂路由处理和请求提取的Web应用开发者来说,这是一个重要的更新。

一个新的GDB TUI前端

当你没有可用的 gdbserver 时,通过 gdb 远程连接,并显示类似 gef 的 TUI。

  • 无需 gdbserver:许多厂商提供的 gdbserver 二进制文件是无效的,而这个工具仅需 gdb、nc、cat 和 mkfifo 即可在远程目标上运行。
  • 无需 Python 支持:许多厂商提供的 gdb 不支持 Python。
  • 架构无关heretek 仅使用 gdb 提供的信息,无需额外的代码!
https://github.com/wcampbell0x2a/heretek/raw/master/images/screenshot.png

https://github.com/wcampbell0x2a/heretek

Cargo.toml 中的特性如何工作

这篇文章探讨了在Rust包管理器Cargo的Cargo.toml文件中,如何处理特征(features)以及潜在的破坏性变化(breakage)。作者强调了Cargo的cargo-semver-checks工具如何帮助开发者避免不经意的SemVer(Semantic Versioning)违反,特别是当涉及到包的特征更改时。

文章通过一个实际例子解释了特征如何工作:在这个例子中,my_crate添加了一个名为max_performance的新特征,这个特征旨在简化用户选择高性能模式的操作。然而,这个看似无害的改变实际上可能导致依赖于该特征的用户代码崩溃,因为该特征改变了依赖库的接口。

https://predr.ag/blog/breakage-in-the-cargo-toml-how-rust-package-features-work/

--

From 日报小组 Mike

社区学习交流平台订阅:

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


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