2022-08-16 09:05:18 +01:00
[ package ]
name = "musicutil"
version = "0.1.0"
edition = "2021"
2023-01-14 16:53:53 +00:00
[ workspace ]
members = [
2023-11-08 16:28:02 +00:00
"modules/ascii_reduce" ,
"modules/ffprobe" ,
"modules/relative_file" ,
"modules/replaygain" ,
"modules/taglib"
2023-01-14 16:53:53 +00:00
]
2022-08-16 09:05:18 +01:00
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[ dependencies ]
2023-11-08 16:28:02 +00:00
relative_file = { path = "./modules/relative_file" }
2022-10-22 15:15:37 +01:00
# for decode/encoding yaml/json for transcode config & ffprobe output
2023-08-31 22:08:21 +01:00
serde = { version = "1.0.0" , features = [ "derive" ] }
serde_yaml = "0.9"
2022-08-16 09:05:18 +01:00
serde_json = "1.0"
2023-08-31 22:08:21 +01:00
serde_with = "3"
2022-10-22 15:15:37 +01:00
# argument parsing
2023-08-31 22:08:21 +01:00
clap = { version = "4" , features = [ "derive" ] }
2022-10-22 15:15:37 +01:00
2023-10-30 22:24:58 +00:00
# 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
2023-08-31 22:08:21 +01:00
lazy_static = "1"
2022-10-22 15:15:37 +01:00
# for scan_for_music
2023-08-31 22:08:21 +01:00
walkdir = "2"
2022-10-22 15:15:37 +01:00
2023-01-14 16:53:53 +00:00
# format detection
2024-08-22 15:32:57 +01:00
infer = "0.16"
2023-08-31 22:08:21 +01:00
bytes = "1"
2023-01-14 16:53:53 +00:00
2022-10-22 15:15:37 +01:00
# tag reading
2023-10-18 15:55:44 +01:00
id3 = { version = "1" , optional = true }
metaflac = { version = "0.2" , optional = true }
2023-01-14 16:53:53 +00:00
taglib = { path = "./modules/taglib" , optional = true }
2023-10-30 22:49:09 +00:00
ffprobe = { path = "./modules/ffprobe" }
2022-10-22 15:15:37 +01:00
2023-10-30 23:17:52 +00:00
# replaygain_analysis
replaygain = { path = "./modules/replaygain" , optional = true }
2022-10-22 15:15:37 +01:00
# for genhtml command
2023-10-19 17:48:23 +01:00
html-escape = { version = "0.2" , optional = true }
urlencoding = { version = "2" , optional = true }
2023-01-18 10:38:20 +00:00
2022-10-22 15:15:37 +01:00
# error handling
2023-08-31 22:08:21 +01:00
thiserror = "1"
string-error = "0.1"
2022-10-22 15:15:37 +01:00
# temporary file for transcode prefix file
2022-08-16 09:05:18 +01:00
tempfile = "3"
2022-10-22 15:15:37 +01:00
# for reading ffmpeg progress output file
2023-08-31 22:08:21 +01:00
notify = "6"
2023-01-14 16:53:53 +00:00
[ features ]
2023-10-19 17:48:23 +01:00
default = [
2023-10-20 15:36:37 +01:00
"replaygain" ,
2023-10-19 17:48:23 +01:00
"mp3_extractor" ,
"flac_extractor" ,
"ffprobe_extractor" ,
"command_genhtml"
]
2023-10-18 15:55:44 +01:00
# Formats
2023-11-10 22:13:13 +00:00
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
2023-10-19 16:13:26 +01:00
flac_extractor = [ "dep:metaflac" ]
mp3_extractor = [ "dep:id3" ]
2023-10-19 17:48:23 +01:00
ffprobe_extractor = [ ] # If to allow using ffmpeg/ffprobe as a fallback tag extractor
2023-10-20 15:36:37 +01:00
command_genhtml = [ "dep:html-escape" , "dep:urlencoding" ]
2023-11-10 22:09:37 +00:00
replaygain = [ "dep:replaygain" ]