1
0
Fork 0
nih-plug/Cargo.toml
Robbert van der Helm 1bb1cde913 Add optional Zstandard compression for state
This can be particularly useful when using the persistent fields feature
to store JSON or other large textual documents.
2022-08-18 13:55:48 +02:00

135 lines
4.3 KiB
TOML

[package]
name = "nih_plug"
version = "0.0.0"
edition = "2021"
authors = ["Robbert van der Helm <mail@robbertvanderhelm.nl>"]
license = "ISC"
keywords = ["audio", "plugin", "vst", "vst3"]
description = "A simple but modern API-agnostic audio plugin framework"
repository = "https://github.com/robbert-vdh/nih-plug"
[workspace]
members = [
"nih_plug_derive",
"nih_plug_egui",
"nih_plug_iced",
"nih_plug_vizia",
"nih_plug_xtask",
"cargo_nih_plug",
"xtask",
"plugins/examples/gain",
"plugins/examples/gain_gui_egui",
"plugins/examples/gain_gui_iced",
"plugins/examples/gain_gui_vizia",
"plugins/examples/midi_inverter",
"plugins/examples/poly_mod_synth",
"plugins/examples/sine",
"plugins/examples/stft",
"plugins/crisp",
"plugins/crossover",
"plugins/diopser",
"plugins/loudness_war_winner",
"plugins/puberty_simulator",
"plugins/safety_limiter",
"plugins/spectral_compressor",
]
[features]
default = ["vst3"]
# Enabling this feature will cause the plugin to terminate when allocations
# occur in the processing function during debug builds. Keep in mind that panics
# may also allocate if they use string formatting, so temporarily disabling this
# feature may be necessary when debugging panics in DSP code.
assert_process_allocs = ["dep:assert_no_alloc"]
# Enables an export target for standalone binaries through the
# `nih_export_standalone()` function. Disabled by default as this requires
# building additional dependencies for audio and MIDI handling.
standalone = ["dep:baseview", "dep:clap", "dep:jack"]
# Enables the `nih_export_vst3!()` macro. Enabled by default. This feature
# exists mostly for GPL-compliance reasons, since even if you don't use the VST3
# wrapper you might otherwise still include a couple (unused) symbols from the
# `vst3-sys` crate.
vst3 = ["dep:vst3-sys"]
# Add adapters to the Buffer object for reading the channel data to and from
# `std::simd` vectors. Requires a nightly compiler.
simd = []
# Compress plugin state using the Zstandard algorithm. Loading uncompressed
# state is still supported so existing state will still load after enabling this
# feature for a plugin, but it can not be disabled again without losing state
# compatibility.
zstd = ["dep:zstd"]
# Only relevant when generating docs, adds the `doc_auto_cfg` nightly feature
docs = []
[dependencies]
nih_plug_derive = { path = "nih_plug_derive" }
anyhow = "1.0"
atomic_float = "0.1"
atomic_refcell = "0.1"
backtrace = "0.3.65"
bitflags = "1.3"
cfg-if = "1.0"
clap-sys = "0.3"
crossbeam = "0.8"
lazy_static = "1.4"
log = { version = "0.4", features = ["std", "release_max_level_info"] }
midi-consts = "0.1"
parking_lot = "0.12"
raw-window-handle = "0.4"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
simplelog = "0.12"
widestring = "1.0.0-beta.1"
# Used for the `assert_process_allocs` feature
assert_no_alloc = { version = "1.1", optional = true }
# Used for the `standalone` feature
# NOTE: OpenGL support is not needed here, but rust-analyzer gets confused when
# some crates do use it and others don't
baseview = { git = "https://github.com/robbert-vdh/baseview.git", branch = "feature/resize", features = ["opengl"], optional = true }
# All the claps!
clap = { version = "3.2", features = ["derive"], optional = true }
# The current upstream jack panics when it can't load the JACK library, which breaks the backend fallback
jack = { git = "https://github.com/robbert-vdh/rust-jack.git", branch = "feature/handle-library-failure", optional = true }
# Used for the `vst3` feature
vst3-sys = { git = "https://github.com/robbert-vdh/vst3-sys.git", branch = "fix/note-off-event", optional = true }
# Used for the `zstd` feature
zstd = { version = "0.11.2", optional = true }
[target.'cfg(all(target_family = "unix", not(target_os = "macos")))'.dependencies]
libc = "0.2.124"
[target.'cfg(target_os = "windows")'.dependencies]
# STDIO isn't reliable on Windows, so when hosting plugins in a DAW it may be
# useful to log using `OutputDebugString()` instead
win_dbg_logger = "0.1"
[target.'cfg(target_os = "windows")'.dependencies.windows]
version = "0.32"
features = [
"Win32_Foundation",
"Win32_Graphics_Gdi",
"Win32_UI_WindowsAndMessaging",
"Win32_System_LibraryLoader",
"Win32_System_Performance",
]
[profile.release]
lto = "thin"
strip = "symbols"
[profile.profiling]
inherits = "release"
debug = true
strip = "none"