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, 人工智能安全, 合规性, 开源许可证, 文档结构分析, 解析器