Rust 库

本文档讲述了在 Rust 中,有哪些库可用于写入和读取审视(Inspect)数据。对于每个库的特定文档,请参阅在各部分链接的 crate 文档。

写入审视的库

fuchsia-inspect

这是核心库。该库为创建节点、创建属性、服务审视(Inspect)等提供了核心 API。内在地,它实现了在审视 VMO 格式中描述的伙伴分配算法(the buddy allocation algorithm)。

inspect-runtime

该库启用了组件来服务审视,并使其可供归档器(the Archivist)收集。

它旨在仅由组件二进制文件使用,而非由库使用。其原因是该库提供了 expect_includes(期望包含)检查,以验证该组件清单配置为公开审视(expose Inspect)。

请避免依赖来自库的 inspect-runtime(审视时),以便测试不被强制添加 client.shard.cml 审视。

fuchsia-inspect-contrib

该库是用于来自客户端的针对审视库的贡献的。这些是客户端在使用审视时识别的模式,它们可以将其概括与共享。其旨在处于比 fuchsia-inspect 更高的层次。

fuchsia-inspect-derive

该库提供了一个在 Rust 程序中通过 #[derive(Inspect)] 过程宏(procedural macro)管理审视数据的便捷方式。它工作在比 fuchsia-inspect 更高的层次上。要获取更多信息,请参阅工效学审视

读取审视的库

这些库并非审视专用,它们用于各类诊断数据。

diagnostics-hierarchy

该库包含了用于测试的便捷的 assert_data_tree 宏,以及 DiagnosticsHierarchy(诊断层次)的定义,它并非审视独有,而是也用于日志和其他诊断数据源。

diagnostics-testing

该库包含便捷的 EnvForDiagnostics,它对于测试 Components v1 中的审视整合情况很有用。

diagnostics-reader

该库包含了便捷的 ArchiveReader,在测试或生产中,它在取回来自归档器的审视数据方面很有用。它包装了连接至 ArchiveAccessor 并从中取回数据这一共享逻辑。

其他

inspect_format

该库提供了用于读取和写入审视 VMO 格式块(block)的 API。