[package]
edition = "2024"
rust-version = "1.88"
name = "rustradio"
version = "0.16.2"
authors = ["Thomas Habets <thomas@habets.se>"]
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Software defined radio library"
readme = "README.md"
keywords = [
"SDR",
"radio",
]
license = "MIT"
repository = "https://github.com/ThomasHabets/rustradio"
[features]
async = ["dep:tokio"]
audio = ["dep:cpal"]
default = ["fast-math"]
fast-math = ["dep:fast-math"]
fftw = ["dep:fftw"]
nix = ["dep:nix"]
pipewire = ["dep:pipewire"]
rtlsdr = ["dep:rtlsdr"]
simd = []
soapysdr = ["dep:soapysdr"]
tokio-unstable = ["tokio/tracing"]
volk = ["dep:volk"]
wasm = [
"dep:web-sys",
"dep:wasm-bindgen",
]
[lib]
name = "rustradio"
path = "src/lib.rs"
[[example]]
name = "airspy_am_decode"
path = "examples/airspy_am_decode.rs"
required-features = ["audio"]
[[example]]
name = "ax25-1200-rx"
path = "examples/ax25-1200-rx.rs"
[[example]]
name = "ax25-1200-wpcr"
path = "examples/ax25-1200-wpcr.rs"
[[example]]
name = "ax25-9600-rx"
path = "examples/ax25-9600-rx.rs"
[[example]]
name = "ax25-9600-wpcr"
path = "examples/ax25-9600-wpcr.rs"
[[example]]
name = "bell202"
path = "examples/bell202.rs"
required-features = ["soapysdr"]
[[example]]
name = "bleh"
path = "examples/bleh.rs"
[[example]]
name = "burst_saver"
path = "examples/burst_saver.rs"
[[example]]
name = "capture"
path = "examples/capture.rs"
required-features = ["soapysdr"]
[[example]]
name = "circ"
path = "examples/circ.rs"
[[example]]
name = "fm_tx"
path = "examples/fm_tx.rs"
required-features = ["soapysdr"]
[[example]]
name = "g3ruh"
path = "examples/g3ruh.rs"
required-features = ["soapysdr"]
[[example]]
name = "il2p-1200-rx"
path = "examples/il2p-1200-rx.rs"
[[example]]
name = "morse_beacon"
path = "examples/morse_beacon.rs"
required-features = ["soapysdr"]
[[example]]
name = "pw_tone"
path = "examples/pw_tone.rs"
required-features = ["pipewire"]
[[example]]
name = "rtl_fm"
path = "examples/rtl_fm.rs"
[[example]]
name = "rtlsdr_to_c32"
path = "examples/rtlsdr_to_c32.rs"
[[example]]
name = "sigmf"
path = "examples/sigmf.rs"
[[example]]
name = "simple_graph"
path = "examples/simple_graph.rs"
[[example]]
name = "soapy_fm"
path = "examples/soapy_fm.rs"
[[example]]
name = "tone"
path = "examples/tone.rs"
required-features = ["audio"]
[[test]]
name = "ax25-decode"
path = "tests/ax25-decode.rs"
[[bench]]
name = "bench_rustradio"
path = "benches/bench_rustradio.rs"
[dependencies.async-trait]
version = "0.1"
[dependencies.cpal]
version = "0.15"
features = ["jack"]
optional = true
[dependencies.fast-math]
version = "0.1"
optional = true
[dependencies.fftw]
version = "0.8"
features = ["system"]
optional = true
default-features = false
[dependencies.itertools]
version = "0.13"
[dependencies.libc]
version = "0.2.149"
[dependencies.log]
version = "0.4"
[dependencies.nix]
version = "0.30.1"
features = ["term"]
optional = true
[dependencies.num-complex]
version = "0.4"
[dependencies.pipewire]
version = "0.8.0"
optional = true
[dependencies.rayon]
version = "1.10"
[dependencies.rtlsdr]
version = "0.1.4"
optional = true
[dependencies.rustfft]
version = "6.2"
[dependencies.rustradio_macros]
version = "0.16.2"
[dependencies.serde]
version = "1.0"
features = ["derive"]
[dependencies.serde_json]
version = "1.0"
[dependencies.sha2]
version = "0.10"
[dependencies.soapysdr]
version = "0.4.2"
optional = true
[dependencies.tar]
version = "0.4"
[dependencies.tempfile]
version = "3.19"
[dependencies.thiserror]
version = "2.0"
[dependencies.tokio]
version = "1.44"
features = ["full"]
optional = true
[dependencies.volk]
version = "0.2"
optional = true
[dependencies.wasm-bindgen]
version = "0.2.100"
optional = true
[dependencies.web-sys]
version = "0.3.77"
features = [
"Performance",
"Window",
]
optional = true
[dev-dependencies.anyhow]
version = "1.0"
[dev-dependencies.chrono]
version = "0.4"
[dev-dependencies.clap]
version = "4"
features = ["derive"]
[dev-dependencies.crossterm]
version = "0.29"
[dev-dependencies.ctrlc]
version = "3.4"
[dev-dependencies.humantime]
version = "2.2.0"
[dev-dependencies.rand]
version = "0.9.1"
[dev-dependencies.ratatui]
version = "0.30"
features = ["all-widgets"]
[dev-dependencies.stderrlog]
version = "0.6"
[lints.clippy]
missing-safety-doc = "warn"
undocumented-unsafe-blocks = "warn"
[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = ["cfg(coverage,coverage_nightly)"]
[profile.nodebug]
lto = true
debug = 0
overflow-checks = true
inherits = "dev"
strip = "debuginfo"
[profile.release.package."*"]
overflow-checks = true