28 个版本
0.10.6 | 2024 年 5 月 31 日 |
---|---|
0.10.4 | 2024 年 2 月 26 日 |
0.10.3 | 2024 年 1 月 4 日 |
0.10.2 | 2023 年 7 月 14 日 |
0.1.0 | 2019 年 6 月 19 日 |
#33 in 解析器实现
310,899 每月下载量
用于 123 个 crate(直接使用 31 个)
1MB
5K SLoC
用法
use spdx::Expression;
fn main() {
let this_is_fine = Expression::parse("MIT OR Apache-2.0").unwrap();
assert!(this_is_fine.evaluate(|req| {
if let spdx::LicenseItem::Spdx { id, .. } = req.license {
// Both MIT and Apache-2.0 are OSI approved, so this expression
// evaluates to true
return id.is_osi_approved();
}
false
}));
assert!(!this_is_fine.evaluate(|req| {
if let spdx::LicenseItem::Spdx { id, .. } = req.license {
// This is saying we don't accept any licenses that are OSI approved
// so the expression will evaluate to false as both sides of the OR
// are now rejected
return !id.is_osi_approved();
}
false
}));
// `NOPE` is not a valid SPDX license identifier, so this expression
// will fail to parse
let _this_is_not = Expression::parse("MIT OR NOPE").unwrap_err();
}
更新 SPDX 列表
您可以通过运行更新程序来更新许可证和异常的 SPDX 标识符列表 cargo run --manifest-path=update/Cargo.toml -- v3.6
其中 v3.6
是 SPDX 数据仓库 中的标签。
贡献
我们欢迎社区对此项目的贡献。
请阅读我们的 贡献指南 以获取有关如何开始的更多信息。
许可
许可协议为以下之一
- Apache 许可证 2.0 版,(LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
贡献
除非您明确声明,否则根据Apache-2.0许可证定义的,您有意提交以包含在作品中的任何贡献,应按上述方式双许可,不得附加任何额外条款或条件。