[package]
edition = "2021"
rust-version = "1.75"
name = "oxifft"
version = "0.3.0"
authors = ["COOLJAPAN OU (Team KitaSan)"]
build = "build.rs"
exclude = [
"benches/",
"tests/",
"fuzz/",
"proptest-regressions/",
".github/",
"docs/",
"scripts/",
"BENCHMARK_RESULTS_TEMPLATE.md",
"BENCHMARKING.md",
"CHANGELOG.md",
"CONTRIBUTING.md",
"PERFORMANCE_ANALYSIS.md",
"PROJECT_STATUS.md",
"TESTING.md",
"TODO.md",
"oxifft.md",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Pure Rust implementation of FFTW - the Fastest Fourier Transform in the West"
homepage = "https://github.com/cool-japan/oxifft"
documentation = "https://docs.rs/oxifft"
readme = "README.md"
keywords = [
"fft",
"fftw",
"dft",
"signal-processing",
"simd",
]
categories = [
"algorithms",
"science",
"mathematics",
]
license = "Apache-2.0"
repository = "https://github.com/cool-japan/oxifft"
[package.metadata.cargo-udeps.ignore]
normal = [
"oxifft-codegen",
"spin",
]
development = [
"approx",
"proptest",
]
[features]
const-fft = []
cuda = [
"dep:oxicuda-driver",
"dep:oxicuda-fft",
]
default = [
"std",
"threading",
]
f128-support = []
f16-support = []
fftw-compat = []
gpu = [
"cuda",
"metal",
]
metal = ["dep:oxicuda-metal"]
mpi = ["dep:mpi"]
pruned = []
signal = ["std"]
simd = []
sparse = []
std = [
"dep:serde_json",
"num-complex/std",
"num-traits/std",
"serde/std",
]
streaming = []
sve = []
threading = [
"std",
"dep:rayon",
]
wasm = [
"dep:wasm-bindgen",
"dep:js-sys",
]
[lib]
name = "oxifft"
path = "src/lib.rs"
[[example]]
name = "autodiff_fft"
path = "examples/autodiff_fft.rs"
[[example]]
name = "batch_fft"
path = "examples/batch_fft.rs"
[[example]]
name = "convolution"
path = "examples/convolution.rs"
[[example]]
name = "multidimensional"
path = "examples/multidimensional.rs"
[[example]]
name = "nufft_example"
path = "examples/nufft_example.rs"
[[example]]
name = "real_fft"
path = "examples/real_fft.rs"
[[example]]
name = "signal_processing"
path = "examples/signal_processing.rs"
required-features = ["signal"]
[[example]]
name = "simple_fft"
path = "examples/simple_fft.rs"
[[example]]
name = "sparse_fft"
path = "examples/sparse_fft.rs"
required-features = ["sparse"]
[[example]]
name = "streaming_fft"
path = "examples/streaming_fft.rs"
required-features = ["streaming"]
[[example]]
name = "wisdom_usage"
path = "examples/wisdom_usage.rs"
[dependencies.hashbrown]
version = "0.17"
[dependencies.js-sys]
version = "0.3"
optional = true
[dependencies.libm]
version = "0.2"
[dependencies.mpi]
version = "0.8"
optional = true
[dependencies.num-complex]
version = "0.4"
default-features = false
[dependencies.num-traits]
version = "0.2"
features = ["libm"]
default-features = false
[dependencies.oxicuda-driver]
version = "0.1.4"
optional = true
[dependencies.oxicuda-fft]
version = "0.1.4"
optional = true
[dependencies.oxicuda-metal]
version = "0.1.4"
optional = true
[dependencies.oxifft-codegen]
version = "0.3.0"
[dependencies.rayon]
version = "1.12"
optional = true
[dependencies.seahash]
version = "4.1"
[dependencies.serde]
version = "1.0"
features = [
"derive",
"alloc",
]
default-features = false
[dependencies.serde_json]
version = "1.0"
optional = true
[dependencies.spin]
version = "0.10"
features = [
"spin_mutex",
"rwlock",
"once",
"lazy",
]
default-features = false
[dependencies.wasm-bindgen]
version = "0.2"
optional = true
[dev-dependencies.approx]
version = "0.5"
[dev-dependencies.criterion]
version = "0.8"
features = ["html_reports"]
[dev-dependencies.proptest]
version = "1.11"
[dev-dependencies.rustfft]
version = "6.4"
[lints.clippy]
all = "warn"
nursery = "warn"
pedantic = "warn"
[lints.rust]
unsafe_op_in_unsafe_fn = "warn"