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 解析器实现

Download history 46558/week @ 2024-05-03 47027/week @ 2024-05-10 50019/week @ 2024-05-17 48308/week @ 2024-05-24 58406/week @ 2024-05-31 57258/week @ 2024-06-07 64854/week @ 2024-06-14 60302/week @ 2024-06-21 55181/week @ 2024-06-28 56959/week @ 2024-07-05 61202/week @ 2024-07-12 73743/week @ 2024-07-19 75549/week @ 2024-07-26 72320/week @ 2024-08-02 73087/week @ 2024-08-09 75739/week @ 2024-08-16

310,899 每月下载量
用于 123 个 crate(直接使用 31 个)

MIT/Apache

1MB
5K SLoC

🆔 spdx

SPDX 许可表达式辅助库

Embark Embark Crates.io Docs Minimum Stable Rust Version SPDX Version dependency status Build Status

用法

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.6SPDX 数据仓库 中的标签。

贡献

Contributor Covenant

我们欢迎社区对此项目的贡献。

请阅读我们的 贡献指南 以获取有关如何开始的更多信息。

许可

许可协议为以下之一

任选其一。

贡献

除非您明确声明,否则根据Apache-2.0许可证定义的,您有意提交以包含在作品中的任何贡献,应按上述方式双许可,不得附加任何额外条款或条件。

依赖项