[package] name = "scope-tui" version = "0.3.0" edition = "2021" authors = [ "alemi " ] description = "A simple oscilloscope/vectorscope/spectroscope for your terminal" license = "MIT" keywords = ["cli", "tui", "audio", "visualization", "scope"] repository = "https://git.alemi.dev/scope-tui.git" readme = "README.md" [lib] name = "scope" path = "src/lib.rs" [[bin]] name = "scope-tui" path = "src/main.rs" required-features = ["app"] [dependencies] derive_more = "0.99.17" thiserror = "1.0.48" rustfft = "6.1.0" # for TUI app clap = { version = "4.0.32", features = ["derive"], optional = true } # cross platform audio library backend cpal = { version = "0.15.3", optional = true } # for TUI backend ratatui = { version = "0.26", features = ["all-widgets"], optional = true } crossterm = { version = "0.27", optional = true } # for pulseaudio libpulse-binding = { version = "2.0", optional = true } libpulse-simple-binding = { version = "2.25", optional = true } [features] default = ["app", "file", "cpal"] app = ["dep:clap", "tui"] tui = ["dep:ratatui", "dep:crossterm"] file = [] cpal = ["dep:cpal"] pulseaudio = ["dep:libpulse-binding", "dep:libpulse-simple-binding"] [profile.release] # make small binaries! will take quite longer, from https://github.com/johnthagen/min-sized-rust opt-level = 'z' # optimize for size lto = true # enable Link Time Optimisation: don't link unused stuff codegen-units = 1 # reducing codegen units slows it down but allows for better optimization panic = 'abort' # abort on panic: don't include code to show what went wrong in release strip = "symbols" # strip symbols from binary: have fun debugging on prod! :)