-
Notifications
You must be signed in to change notification settings - Fork 4
/
Cargo.toml
104 lines (94 loc) · 3.37 KB
/
Cargo.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
[package]
name = "bliss-audio"
version = "0.9.3"
build = "build.rs"
authors = ["Polochon-street <[email protected]>"]
edition = "2021"
license = "GPL-3.0-only"
description = "A song analysis library for making playlists"
homepage = "https://lelele.io/bliss.html"
repository = "https://github.com/Polochon-street/bliss-rs"
keywords = ["audio", "analysis", "MIR", "playlist", "similarity"]
readme = "README.md"
exclude = ["data/"]
[package.metadata.docs.rs]
features = ["bliss-audio-aubio-rs/rustdoc", "library", "ffmpeg"]
no-default-features = true
[features]
default = ["ffmpeg", "aubio-static"]
# Enable song decoding with ffmpeg. Activated by default, and needed for
# almost all use-cases, disable it at your own risk!
# It is only useful if you want to implement the decoding of the tracks yourself
# and just feed them to bliss, so you don't depend on ffmpeg.
# TODO make ffmpeg a test-dep
ffmpeg = ["dep:ffmpeg-next", "dep:ffmpeg-sys-next"]
aubio-static = ["bliss-audio-aubio-rs/static"]
# Build ffmpeg instead of using the host's.
build-ffmpeg = ["ffmpeg-next/build"]
ffmpeg-static = ["ffmpeg-next/static"]
# Build for raspberry pis
rpi = ["ffmpeg-next/rpi"]
# Use if you get "No prebuilt bindings. Try use `bindgen` feature"
update-aubio-bindings = ["bliss-audio-aubio-rs/bindgen"]
# Use if you want to build python bindings with maturin.
python-bindings = ["bliss-audio-aubio-rs/fftw3"]
# Enable the benchmarks with `cargo +nightly bench --features=bench`
bench = []
library = [
"serde", "dep:rusqlite", "dep:dirs", "dep:tempdir",
"dep:anyhow", "dep:serde_ini", "dep:serde_json",
"dep:indicatif", "ndarray/serde"
]
serde = ["dep:serde", "extended-isolation-forest/serde"]
integration-tests = []
[dependencies]
# Until https://github.com/aubio/aubio/issues/336 is somehow solved
# Hopefully we'll be able to use the official aubio-rs at some point.
bliss-audio-aubio-rs = "0.2.2"
ffmpeg-next = { version = "7.0.3", optional = true }
ffmpeg-sys-next = { version = "7.0.2", optional = true, default-features = false }
log = "0.4.17"
# `rayon` is used only by `par_mapv_inplace` in chroma.rs.
# TODO: is the speed gain that substantial?
ndarray = { version = "0.15.6", features = ["rayon"] }
ndarray-stats = "0.5.1"
noisy_float = "0.2.0"
adler32 = "1.0.2"
rustfft = "6.1.0"
thiserror = "1.0.40"
strum = "0.24.1"
strum_macros = "0.24.3"
rcue = "0.1.3"
extended-isolation-forest = { version = "0.2.3", default-features = false }
# Deps for the library feature
serde = { version = "1.0", optional = true, features = ["derive"] }
serde_json = { version = "1.0.59", optional = true }
serde_ini = { version = "0.2.0", optional = true }
tempdir = { version = "0.3.7", optional = true }
rusqlite = { version = "0.28.0", optional = true }
dirs = { version = "5.0.0", optional = true }
anyhow = { version = "1.0.58", optional = true }
indicatif = { version = "0.17.0", optional = true }
[dev-dependencies]
ndarray-npy = { version = "0.8.1", default-features = false }
mime_guess = "2.0.3"
glob = "0.3.0"
anyhow = "1.0.45"
clap = "2.33.3"
pretty_assertions = "1.3.0"
serde_json = "1.0.59"
[[example]]
name = "library"
required-features = ["library", "ffmpeg"]
[[example]]
name = "library_extra_info"
required-features = ["library", "ffmpeg"]
[[example]]
name = "playlist"
required-features = ["serde", "ffmpeg"]
[[example]]
name = "distance"
required-features = ["ffmpeg"]
[[example]]
name = "analyze"
required-features = ["ffmpeg"]