85 lines
2 KiB
TOML
85 lines
2 KiB
TOML
[package]
|
|
name = "musicutil"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
|
|
[workspace]
|
|
members = [
|
|
"modules/ascii_reduce",
|
|
"modules/ffprobe",
|
|
"modules/relative_file",
|
|
"modules/replaygain",
|
|
"modules/taglib"
|
|
]
|
|
|
|
|
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
|
|
|
[dependencies]
|
|
relative_file = { path = "./modules/relative_file" }
|
|
|
|
# for decode/encoding yaml/json for transcode config & ffprobe output
|
|
serde = { version = "1.0.0", features = ["derive"] }
|
|
serde_yaml = "0.9"
|
|
serde_json = "1.0"
|
|
serde_with = "3"
|
|
|
|
# argument parsing
|
|
clap = { version = "4", features = ["derive"] }
|
|
|
|
# for reducing filenames to ascii
|
|
# useful for when storing music files on mp3 players with broken unicode support
|
|
ascii_reduce = { path = "./modules/ascii_reduce" }
|
|
|
|
# transcode presets & format handlers
|
|
lazy_static = "1"
|
|
|
|
# for scan_for_music
|
|
walkdir = "2"
|
|
|
|
# format detection
|
|
infer = "0.16"
|
|
bytes = "1"
|
|
|
|
# tag reading
|
|
id3 = { version = "1", optional = true }
|
|
metaflac = { version = "0.2", optional = true }
|
|
taglib = { path = "./modules/taglib", optional = true }
|
|
ffprobe = { path = "./modules/ffprobe" }
|
|
|
|
# replaygain_analysis
|
|
replaygain = { path = "./modules/replaygain", optional = true }
|
|
|
|
# for genhtml command
|
|
html-escape = { version = "0.2", optional = true }
|
|
urlencoding = { version = "2", optional = true }
|
|
|
|
# error handling
|
|
thiserror = "1"
|
|
string-error = "0.1"
|
|
|
|
# temporary file for transcode prefix file
|
|
tempfile = "3"
|
|
|
|
# for reading ffmpeg progress output file
|
|
notify = "6"
|
|
|
|
[features]
|
|
default = [
|
|
"replaygain",
|
|
"mp3_extractor",
|
|
"flac_extractor",
|
|
"ffprobe_extractor",
|
|
"command_genhtml"
|
|
]
|
|
|
|
# Formats
|
|
taglib_extractor = ["dep:taglib"] # requires taglib's development headers & pkg-config installed, not enabled by default but Highly recommended for more supported file formats & faster than the ffprobe fallback
|
|
flac_extractor = ["dep:metaflac"]
|
|
mp3_extractor = ["dep:id3"]
|
|
ffprobe_extractor = [] # If to allow using ffmpeg/ffprobe as a fallback tag extractor
|
|
|
|
command_genhtml = ["dep:html-escape", "dep:urlencoding"]
|
|
|
|
replaygain = ["dep:replaygain"]
|