spectrograms 0.2.0

High-performance FFT-based computations for audio and image processing
Documentation
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2024"
name = "spectrograms"
version = "0.2.0"
authors = ["Jack Geraghty (jmg049) <jgeraghty049@gmail.com>"]
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "High-performance FFT-based computations for audio and image processing"
readme = "README.md"
keywords = [
    "fft",
    "spectrogram",
    "audio",
    "image",
    "signal-processing",
]
categories = [
    "multimedia::audio",
    "multimedia::images",
    "science",
]
license = "MIT"
repository = "https://github.com/jmg049/Spectrograms"

[package.metadata.docs.rs]
all-features = false
features = [
    "realfft",
    "serde",
    "python",
]
rustdoc-args = [
    "--cfg",
    "docsrs",
]

[features]
default = ["realfft"]
fftw = ["dep:fftw-sys"]
python = [
    "dep:pyo3",
    "dep:numpy",
]
realfft = [
    "dep:realfft",
    "dep:rustfft",
]
serde = ["dep:serde"]

[lib]
name = "spectrograms"
crate-type = [
    "lib",
    "cdylib",
]
path = "src/lib.rs"

[[example]]
name = "amplitude_scales"
path = "examples/amplitude_scales.rs"

[[example]]
name = "basic_linear"
path = "examples/basic_linear.rs"

[[example]]
name = "compare_windows"
path = "examples/compare_windows.rs"

[[example]]
name = "fft2d_basic"
path = "examples/fft2d_basic.rs"

[[example]]
name = "fft_padding_demo"
path = "examples/fft_padding_demo.rs"

[[example]]
name = "image_blur_fft"
path = "examples/image_blur_fft.rs"

[[example]]
name = "image_edge_detection"
path = "examples/image_edge_detection.rs"

[[example]]
name = "mel_spectrogram"
path = "examples/mel_spectrogram.rs"

[[example]]
name = "reuse_plan"
path = "examples/reuse_plan.rs"

[[example]]
name = "serde_example"
path = "examples/serde_example.rs"

[[example]]
name = "stft_batch"
path = "examples/stft_batch.rs"

[[example]]
name = "stft_multichannel"
path = "examples/stft_multichannel.rs"

[[example]]
name = "stft_streaming"
path = "examples/stft_streaming.rs"

[[test]]
name = "builder_tests"
path = "tests/builder_tests.rs"

[[test]]
name = "chroma_tests"
path = "tests/chroma_tests.rs"

[[test]]
name = "cqt_tests"
path = "tests/cqt_tests.rs"

[[test]]
name = "fft2d_tests"
path = "tests/fft2d_tests.rs"

[[test]]
name = "fft_padding_tests"
path = "tests/fft_padding_tests.rs"

[[test]]
name = "images_ops_tests"
path = "tests/images_ops_tests.rs"

[[test]]
name = "mfcc_tests"
path = "tests/mfcc_tests.rs"

[[test]]
name = "params_tests"
path = "tests/params_tests.rs"

[[test]]
name = "serde_tests"
path = "tests/serde_tests.rs"

[[test]]
name = "spectrogram_tests"
path = "tests/spectrogram_tests.rs"

[[test]]
name = "stft_plan_tests"
path = "tests/stft_plan_tests.rs"

[[test]]
name = "streaming_tests"
path = "tests/streaming_tests.rs"

[[test]]
name = "window_tests"
path = "tests/window_tests.rs"

[[bench]]
name = "fft1d_benchmarks"
path = "benches/fft1d_benchmarks.rs"
harness = false

[[bench]]
name = "fft2d_benchmarks"
path = "benches/fft2d_benchmarks.rs"
harness = false

[[bench]]
name = "image_ops_benchmarks"
path = "benches/image_ops_benchmarks.rs"
harness = false

[[bench]]
name = "planner_benchmarks"
path = "benches/planner_benchmarks.rs"
harness = false

[[bench]]
name = "spectrogram_benchmarks"
path = "benches/spectrogram_benchmarks.rs"
harness = false

[[bench]]
name = "stft_benchmarks"
path = "benches/stft_benchmarks.rs"
harness = false

[dependencies.bincode2]
version = "2.0.1"
optional = true

[dependencies.fftw-sys]
version = "0.8.0"
optional = true

[dependencies.ndarray]
version = ">=0.17"
features = ["serde"]

[dependencies.non-empty-slice]
version = "0.5.1"
features = ["serde"]

[dependencies.num-complex]
version = "0.4.6"
features = ["serde"]

[dependencies.numpy]
version = "0.27"
optional = true

[dependencies.once_cell]
version = "1.19"

[dependencies.pyo3]
version = "0.27"
features = [
    "extension-module",
    "experimental-inspect",
]
optional = true

[dependencies.realfft]
version = "3.5.0"
optional = true

[dependencies.regex]
version = "1.12.2"

[dependencies.rustfft]
version = "6.4.1"
optional = true

[dependencies.serde]
version = "1.0"
features = ["derive"]
optional = true

[dependencies.thiserror]
version = "2.0.18"

[dev-dependencies.bincode2]
version = "2.0.1"

[dev-dependencies.criterion]
version = "0.8.1"
features = ["html_reports"]

[dev-dependencies.num-format]
version = "0.4.4"

[dev-dependencies.rmp-serde]
version = "1.1"

[dev-dependencies.serde_json]
version = "1.0"

[build-dependencies.pkg-config]
version = "0.3"

[profile.bench]
opt-level = 3
lto = true
codegen-units = 1
debug = 0
strip = "symbols"