mecomp-daemon 0.7.1

RPC server for the Mecomp, the Metadata Enhanced Collection Orientated Music Player
Documentation
[package]
name = "mecomp-daemon"
description = "RPC server for the Mecomp, the Metadata Enhanced Collection Orientated Music Player"
version.workspace = true
edition.workspace = true
authors.workspace = true
repository.workspace = true
keywords.workspace = true
categories.workspace = true
readme.workspace = true
license.workspace = true

[package.metadata.wix]
upgrade-guid = "38CAEA74-E210-45E0-8B86-F92826C666A8"
path-guid = "4A92209A-E7B0-4FE0-BB14-D2CA0E55FD11"
license = false
eula = false

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[lib]
bench = false

[[bin]]
name = "mecomp-daemon"
test = false
bench = false
doctest = false

[[bench]]
name = "rescan"
harness = false

[[bench]]
name = "analyze"
harness = false

[[bench]]
name = "recluster"
harness = false

[features]
default = ["cli", "dynamic_updates"]
cli = [
    "dep:clap",
    "dep:clap_complete",
] # features needed for the CLI (binary crate)
# otel_tracing = ["mecomp-core/otel_tracing"]
# flame = ["mecomp-core/flame"]
dynamic_updates = ["dep:notify-debouncer-full", "dep:notify"]
dhat-heap = ["dep:dhat"] # Enable heap profiling with dhat-rs

# Hardware acceleration for ONNX model inference (opt-in, requires additional setup)
cuda = ["mecomp-analysis/cuda"] # NVIDIA CUDA (requires CUDA 12 + cuDNN 9.x)
tensorrt = [ # NVIDIA TensorRT (requires TensorRT + CUDA)
    "mecomp-analysis/tensorrt",
]

[dependencies]
# shared dependencies
anyhow = { workspace = true }
clap = { workspace = true, optional = true }
clap_complete = { workspace = true, optional = true }
csv.workspace = true
dhat = { version = "0.3", optional = true }
log = { workspace = true }
notify = { workspace = true, optional = true }
notify-debouncer-full = { workspace = true, optional = true }
serde = { workspace = true }
serde_json = { workspace = true }
surrealdb = { workspace = true }
tokio = { workspace = true, features = ["rt-multi-thread", "signal"] }
tonic = { workspace = true }
tracing = { workspace = true }
walkdir = { workspace = true }

# MECOMP dependencies
mecomp-core = { workspace = true, features = [
    "notifications",
    "audio",
    "analysis",
] }
mecomp-storage = { workspace = true, features = ["serde", "db", "analysis"] }
mecomp-analysis.workspace = true
one-or-many = { workspace = true }
mecomp-prost = { workspace = true }
tokio-stream = { workspace = true }

[dev-dependencies]
criterion.workspace = true
lofty = { workspace = true }
mecomp-core = { workspace = true, features = [
    "notifications",
    "mock_playback",
    "test_utils",
] }
mecomp-storage = { workspace = true, features = [
    "serde",
    "db",
    "analysis",
    "test_utils",
] }
pretty_assertions = { workspace = true }
rstest = { workspace = true }
tempfile = { workspace = true }