【Rust日报】tracing-tape - 基于tracing的更上层的封装

科技   2024-11-23 17:00   加拿大  

tracing - 一个用于在Rust程序中收集结构化的基于事件的诊断信息的框架

tracing是一个用于在Rust程序中收集结构化的基于事件的诊断信息的框架。

该框架可用于应用程序和库。在应用程序中,可通过tracing-subscriber等收集器实现来记录跟踪事件。在库中,开发者只需使用tracing提供的宏和类型来收集可能对下游使用者有用的信息。

文档提供了一些代码示例,展示了如何初始化收集器、使用跨度(span)和事件(event)等核心概念在应用程序和库中记录诊断信息。tracing旨在帮助Rust开发者方便地将结构化日志记录集成到他们的程序中。

https://github.com/tokio-rs/tracing

tracing-tape - 基于tracing的更上层的封装

这个项目提供了一个简单的方法来调试和分析分布式Rust应用程序的执行情况。它基于 tracing 创建,可以将应用程序的追踪事件记录到磁盘文件中,然后使用一个GUI工具 trace-deck 来可视化查看这些记录文件。

要使用它,只需在应用程序中添加几个依赖项,并用一些代码初始化记录器。运行应用程序时就会在当前目录下生成以时间戳命名的 .tape 文件,里面记录了应用执行过程中的追踪事件。之后就可以用 trace-deck 工具直接打开这些文件查看可视化的执行情况。

这个工具的优点是无需复杂的设置和配置,就可以快速地对应用进行追踪分析,并支持同时加载多个记录文件。但目前还存在一些已知问题,比如无法配置记录器、大文件加载慢、偶尔会导致延迟等。总的来说是一个方便的分布式系统调试和分析工具。

https://github.com/soehrl/tracing-tape

infinite-rs - Halo Infinite游戏数据反序列化库

该资源库是一个用Rust语言编写的简单快速的Halo Infinite游戏数据反序列化库。它主要功能包括:

  1. 加载Halo Infinite游戏中的Module文件,这些文件存储了游戏中所有资源如模型、纹理、元数据等。

  2. 从Module文件中加载特定的tag文件,获取tag数据流和信息。

  3. 通过derive特性,可以将tag数据直接反序列化到自定义的数据结构中,方便后续处理。

  4. 提供了一些示例代码展示如何使用该库加载Module文件、tag文件以及自定义数据结构。

  5. 该项目受到了其他一些游戏文件相关工具如libinfinite、Reclaimer等的启发。

这是一个方便Rust开发者访问和处理Halo Infinite游戏数据的实用库。

https://github.com/Surasia/infinite-rs

dynosaur - 允许你在具有异步函数和返回impl Trait的trait上使用动态分发

dynosaur允许你在具有异步函数和返回impl Trait的trait上使用动态分发。它提供了一个[dynosaur::dynosaur(DynNext)]属性宏,用于生成一个叫DynNext的类型,可以像使用dyn Trait那样使用该类型。当动态分发时,返回impl Trait的方法会将其返回类型装箱,而静态分发时则不会。该crate使用Apache 2.0或MIT许可证授权。

https://github.com/spastorino/dynosaur

--

From 日报小组 Mike

社区学习交流平台订阅:

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


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