[package]
name = "mtrack"
description = "A multitrack audio and MIDI player for live performances."
license = "GPL-3.0"
version = "0.13.0"
authors = ["Michael Wilson <mike@mdwn.dev>"]
edition = "2021"
repository = "https://github.com/mdwn/mtrack"
readme = "README.md"
keywords = ["audio"]
categories = ["multimedia", "multimedia::audio"]
include = [
    "build.rs",
    "Cargo.toml",
    "LICENSE",
    "README.md",
    "src/**/*",
    "!src/webui/svelte/node_modules/**",
    "!src/webui/svelte/src/**",
    "!src/webui/svelte/.svelte-kit/**",
]

[package.metadata.binstall]
pkg-url = "{ repo }/releases/download/v{ version }/{ name }-{ version }-{ target }.tar.gz"
pkg-fmt = "tgz"
bin-dir = "{ name }-{ version }-{ target }/{ bin }{ binary-ext }"

[dependencies]
clap = { version = "4.5.60", features = ["cargo", "derive"] }
config = "0.15.19"
cpal = "0.17.1"
rayon = "1.11.0"
num_cpus = "1.17.0"
duration-string = "0.5.3"
symphonia = { version = "0.6", features = ["all"] }
midir = "0.10.1"
midly = "0.5.3"
ola = "0.1.0"
prost = "0.14"
prost-types = "0.14"
rosc = "0.11.4"
rtrb = "0.3"
rubato = "3"
rand = "0.10"
serde = { version = "1.0", features = ["derive"] }
yaml-rust2 = "0.11"
shh = "1.0.1"
spin_sleep = "1.3.3"
thiserror = "2.0.18"
tokio = { version = "1.50.0", features = [
    "fs",
    "macros",
    "rt",
    "rt-multi-thread",
    "sync",
    "time",
] }
tonic = "0.14"
tonic-prost = "0.14"
tonic-reflection = "0.14"
tonic-web = "0.14"
tracing = "0.1.44"
tracing-subscriber = { version = "0.3.22", features = ["env-filter"] }
crossbeam-channel = "0.5.15"
thread-priority = "3.0"
parking_lot = "0.12"
tokio-util = "0.7"
hostname = "0.4"
pest = "2.8"
pest_derive = "2.8"
indexmap = { version = "2", features = ["serde"] }
serde_json = "1.0"
sha2 = "0.10"
ratatui = "0.30"
crossterm = "0.29"

rmcp = { version = "1.7", default-features = false, features = [
    "server",
    "macros",
    "schemars",
    "transport-streamable-http-server",
] }
schemars = "1"
axum = { version = "0.8", features = ["ws", "multipart"] }
http = "1"
http-body-util = "0.1"
tower = { version = "0.5", features = ["util"] }
rust-embed = "8"
notify = "8"
notify-debouncer-mini = "0.7"
futures-util = "0.3"
tempfile = "3.26.0"

[dev-dependencies]
hound = "3.5.1"
reqwest = { version = "0.13", features = ["json", "stream"] }
serial_test = "3.4.0"
tokio-tungstenite = "0.28"

[build-dependencies]
jiff = "0.2"
tonic-build = "0.14"
tonic-prost-build = "0.14"

[lib]
name = "mtrack"
path = "src/lib.rs"

[package.metadata.cargo-shear]
ignored = ["prost"]
