2个版本

0.1.1 2024年6月27日
0.1.0 2024年4月27日

#1200解析器实现

每月 下载 23

GPL-3.0-or-later

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