2个版本
0.1.1 | 2024年6月27日 |
---|---|
0.1.0 | 2024年4月27日 |
#1200 在 解析器实现
每月 下载 23 次
22KB
451 行
deb-version(7)
这是Debian软件包管理基础层dpkg中的版本相关代码的Rust移植版本。目标是尽可能接近dpkg的行为,同时提供方便的Rust抽象。规范可以在deb-version(7)
手册页中找到。
功能
您可以使用与dpkg相同的方式解析和验证版本,以及检查相等性和排序。
use deb_version7::DebVersion;
use std::str::FromStr;
let first = DebVersion::from_str("1.0.0-1").unwrap();
let second = DebVersion::from_str("1.0.0-1~bpo12+1").unwrap();
assert!(first > second);
虽然DebVersion
是使用Rust的String
/&str
类型创建的,但deb版本只使用ASCII字符。任何非ASCII字符都将立即被拒绝。
实现
移植使用的是f268c3733版本的dpkg Git仓库。
保留了上游C代码的大致结构,以方便未来的更新。尚未对性能进行评估。
致谢
deb-version7
可在GPL v3下使用,或根据您的选择,任何后续版本。主要版权所有者是编写原始C代码的Ian Jackson和Guillem Jover,Kunal Mehta(在ChatGPT 3.5的帮助下)进行了Rust移植。
每个源文件都保留了dpkg代码库中代码的原始来源,并保留了所需的许可证头(进行最小的语法更改)。
依赖
~265–720KB
~17K SLoC