-
Notifications
You must be signed in to change notification settings - Fork 11
/
Cargo.toml
50 lines (44 loc) · 1.69 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
[package]
name = "scope-tui"
version = "0.3.0"
edition = "2021"
authors = [ "alemi <[email protected]>" ]
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! :)