#music-brainz #cddb #ctdb #accuraterip

cdtoc

CDTOC元数据标签的解析器和工具

20个版本

0.4.0 2024年7月29日
0.3.5 2024年2月8日
0.3.4 2023年11月25日
0.2.1 2023年6月26日
0.1.0 2022年12月26日

#169数据库接口

Download history 7/week @ 2024-06-01 1/week @ 2024-06-08 66/week @ 2024-06-29 11/week @ 2024-07-20 234/week @ 2024-07-27 8/week @ 2024-08-03

每月253次下载

WTFPL 许可证

120KB
2K SLoC

CDTOC

docs.rs changelog
crates.io ci deps.rs
license contributions welcome

CDTOC是一个简单的Rust库,用于解析和处理音频CD目录表,即以CDTOC-style元数据值的形式。

默认情况下,它还可以为像AccurateRipCDDBCUETools 数据库MusicBrainz这样的服务生成盘ID,但您可以通过禁用相应的crate功能(分别禁用accurateripcddbctdbmusicbrainz)来缩小依赖树,如果您不需要这些功能的话。

示例

use cdtoc::Toc;

// From a CDTOC string.
let toc1 = Toc::from_cdtoc("4+96+2D2B+6256+B327+D84A").unwrap();

// From the raw parts.
let toc2 = Toc::from_parts(
    vec![150, 11563, 25174, 45863],
    None,
    55370,
).unwrap();

// Either way gets you to the same place.
assert_eq!(toc1, toc2);

// You can also get a CDTOC-style string back at any time:
assert_eq!(toc1.to_string(), "4+96+2D2B+6256+B327+D84A");

序列化和反序列化

可以通过启用可选的serde crate功能来公开此库类型的序列化和反序列化实现

类型 格式 备注
AccurateRip 字符串
Cddb 字符串
持续时间 u64
ShaB64 字符串 MusicBrainz和CTDB ID。
Toc 字符串
轨道 映射
轨道位置 字符串

安装

Cargo.toml中的dependencies中添加cdtoc,如下所示

[dependencies]
cdtoc = "0.4.*"

磁盘ID辅助工具需要额外的依赖项,因此如果您不使用它们,请确保禁用默认功能(添加您确实想要的功能)以跳过开销。

[dependencies.cdtoc]
version = "0.4.*"
default-features = false

许可证

版权 © 2024 Blobfolio, LLC <[email protected]>

本作品是免费的。您可以在Do What The Fuck You Want To Public License,版本2的条款下重新分发或修改它。

DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
Version 2, December 2004

Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>

Everyone is permitted to copy and distribute verbatim or modified
copies of this license document, and changing it is allowed as long
as the name is changed.

DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

0. You just DO WHAT THE FUCK YOU WANT TO.

依赖项

~275–530KB
~11K SLoC