hahwul/spdx.cr

GitHub: hahwul/spdx.cr

Crystal 语言的 SPDX 许可证表达式解析与 SPDX 2.3 文档处理工具库,内置完整许可证数据库并附带 CLI。

Stars: 2 | Forks: 0

# spdx.cr 适用于 Crystal 的 SPDX 许可证表达式解析器和 SPDX 2.3 文档工具包。包含 727 个内置的 SPDX 许可证,无任何外部依赖。 ## 安装 将依赖项添加到你的 `shard.yml` 中: ``` dependencies: spdx: github: hahwul/spdx.cr ``` 然后运行 `shards install`。 ## 用法 ### 库 ``` require "spdx" # 解析 license expression ast = Spdx.parse("MIT AND Apache-2.0") # 验证 expression Spdx.valid_expression?("MIT OR GPL-2.0-only") # => true # 查找 license license = Spdx.find_license("MIT") license.name # => "MIT License" license.osi_approved? # => true # 检查 license 是否存在 Spdx.license?("MIT") # => true ``` ### CLI ``` # License expression spdx expression parse "MIT AND Apache-2.0" spdx expression validate "GPL-2.0-only WITH Classpath-exception-2.0" # License lookup spdx license list --osi spdx license info MIT spdx license search apache # SPDX document spdx validate document.spdx.json spdx convert document.spdx --format json ``` ## 示例 可运行的示例位于 [`examples/`](./examples) 中: ``` crystal run examples/basic.cr # parse, valid_expression?, validate_expression crystal run examples/license_lookup.cr # SPDX license & exception lookup with metadata crystal run examples/document_io.cr # JSON ↔ Tag-Value document conversion ``` ## 功能 - 具有完整运算符优先级(AND、OR、WITH、+)的许可证表达式解析器 - 在编译时内置的 727 个 SPDX 许可证 - 带有验证功能的 SPDX 2.3 文档模型 - 支持 JSON 和 Tag-Value 格式(解析 / 生成 / 转换) - CLI 工具 ## 贡献 1. Fork 它 () 2. 创建你的功能分支 (`git checkout -b my-new-feature`) 3. 提交你的更改 (`git commit -am 'Add some feature'`) 4. 推送到该分支 (`git push origin my-new-feature`) 5. 创建一个新的 Pull Request
标签:Crystal, SPDX, 人工智能安全, 合规性, 开源许可证, 文档结构分析, 解析器