45个版本
0.6.5 | 2024年8月6日 |
---|---|
0.6.0 | 2024年7月30日 |
0.4.2 | 2023年9月7日 |
0.4.1 | 2023年7月30日 |
0.2.16 | 2021年7月7日 |
178 在 编码 中排名
22,132 每月下载量
在 14 个crate中使用 (直接使用8个)
46KB
1K SLoC
serde-sarif
此crate提供了一个与serde兼容的SARIF结构。它旨在用于可能需要读取或写入SARIF文件的Rust代码。
最新的文档可在此找到。
serde是Rust的一个流行的序列化框架。更多信息可以在官方仓库中找到:https://github.com/serde-rs/serde
SARIF或静态分析结果交换格式是静态分析工具输出的行业标准格式。更多信息可以在官方网站上找到:https://sarifweb.azurewebsites.net/。
用法
对于大多数情况,只需使用带有[serde]的根sarif::Sarif结构即可进行读取和写入。
示例
use serde_sarif::sarif::Sarif;
let sarif: Sarif = serde_json::from_str(
r#"{ "version": "2.1.0", "runs": [] }"#
).unwrap();
assert_eq!(
sarif.version.to_string(),
"\"2.1.0\"".to_string()
);
由于许多sarif::Sarif结构包含许多可选字段,因此经常使用构建器模式来构建这些结构。每个结构都有一个构建器方法来完成此操作。
示例
use serde_sarif::sarif::Message;
let message = Message::builder()
.id("id")
.build();
这使用TypedBuilder
进行编译时类型检查。
内部实现细节
根sarif::Sarif结构自动从最新的Sarif JSON模式生成,这是在构建时完成的(通过构建脚本)。
Crate功能
此crate包含不同的功能,具体取决于您的用例。
示例
[dependencies]
serde-sarif = { version = "*", features = ["clippy-converters"] }
转换器
- clang-tidy-converters 提供了Clang tidy和SARIF类型之间的转换
- clippy-converters 提供了Clippy和SARIF类型之间的转换
- hadolint-converters 提供了hadolint和SARIF类型之间的转换
- shellcheck-converters 提供了shellcheck和SARIF类型之间的转换
许可证:MIT
依赖项
~1–2.5MB
~49K SLoC