[[bench]]
harness = false
name = "apply"
path = "benches/apply.rs"
[[bench]]
harness = false
name = "flowgraph"
path = "benches/flowgraph.rs"
[[bench]]
harness = false
name = "sync_vs_async"
path = "benches/sync_vs_async.rs"
[build-dependencies.rustc_version]
version = "0.4"
[dependencies.anyhow]
version = "1.0"
[dependencies.async-lock]
version = "3.4"
[dependencies.async-trait]
version = "0.1"
[dependencies.burn]
default-features = false
optional = true
version = "0.18"
[dependencies.config]
version = "0.15"
[dependencies.dirs]
version = "6.0"
[dependencies.dyn-clone]
version = "1.0"
[dependencies.futuredsp]
version = "0.0.8"
[dependencies.futures]
version = "0.3"
[dependencies.futures-lite]
version = "2.6"
[dependencies.futuresdr-macros]
version = "0.0.8"
[dependencies.futuresdr-types]
version = "0.0.14"
[dependencies.num-complex]
version = "0.4"
[dependencies.num-integer]
version = "0.1"
[dependencies.num_cpus]
version = "1.17"
[dependencies.once_cell]
version = "1.21"
[dependencies.rustfft]
version = "6.4"
[dependencies.seify]
default-features = false
optional = true
version = "0.18"
[dependencies.serde]
features = ["derive"]
version = "1.0"
[dependencies.slab]
version = "0.4"
[dependencies.spin]
version = "0.10"
[dependencies.thiserror]
version = "2.0"
[dependencies.tracing]
features = ["log"]
version = "0.1"
[dependencies.web-time]
version = "1.1"
[dependencies.wgpu]
optional = true
version = "25.0"
[dev-dependencies.async-channel]
version = "2.5"
[dev-dependencies.criterion]
features = ["html_reports"]
version = "0.7"
[dev-dependencies.easy-parallel]
version = "3.3"
[dev-dependencies.float-cmp]
version = "0.10"
[dev-dependencies.rand]
version = "0.9"
[dev-dependencies.vulkano-shaders]
version = "0.35"
[[example]]
name = "ctrl-port"
path = "examples/ctrl-port.rs"
[[example]]
name = "custom-config"
path = "examples/custom-config.rs"
[[example]]
name = "message-passing"
path = "examples/message-passing.rs"
[[example]]
name = "minimal"
path = "examples/minimal.rs"
[[example]]
name = "minimal-dyn"
path = "examples/minimal-dyn.rs"
[[example]]
name = "mock"
path = "examples/mock.rs"
[[example]]
name = "multi"
path = "examples/multi.rs"
[features]
aaronia_http = ["seify/aaronia_http"]
audio = ["dep:cpal", "dep:hound", "dep:rodio"]
burn = ["dep:burn"]
default = ["tracing_max_level_debug", "tracing_release_max_level_info"]
flow_scheduler = []
hackrf = ["seify/hackrfone"]
rtlsdr = ["seify/rtlsdr"]
seify = ["dep:seify", "futuresdr-types/seify"]
seify_dummy = ["seify/dummy"]
soapy = ["seify/soapy"]
tpb_scheduler = []
tracing_max_level_debug = ["tracing/max_level_debug"]
tracing_release_max_level_info = ["tracing/release_max_level_info"]
vulkan = ["dep:vulkano", "dep:ouroboros"]
wgpu = ["dep:wgpu"]
zeromq = ["dep:zmq"]
zynq = ["dep:xilinx-dma"]
[lib]
name = "futuresdr"
path = "src/lib.rs"
[package]
authors = ["FutureSDR Contributors <team@futuresdr.org>"]
autobenches = false
autobins = false
autoexamples = false
autolib = false
autotests = false
build = "build.rs"
categories = ["asynchronous", "concurrency", "hardware-support", "science", "wasm"]
description = "An Experimental Async SDR Runtime for Heterogeneous Architectures."
edition = "2024"
homepage = "https://www.futuresdr.org"
keywords = ["sdr", "radio", "runtime", "async", "acceleration"]
license = "Apache-2.0"
name = "futuresdr"
readme = "README.md"
repository = "https://github.com/futuresdr/futuresdr/"
rust-version = "1.85"
version = "0.0.39"
[package.metadata.docs.rs]
rustdoc-args = ["--cfg", "docsrs"]
[profile.release]
codegen-units = 1
debug = 2
lto = "fat"
opt-level = 3
panic = "abort"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.async-executor]
version = "1.13"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.async-fs]
version = "2.2"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.async-io]
version = "2.6"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.async-native-tls]
optional = true
version = "0.5"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.async-net]
version = "2.0"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.async-task]
version = "4.7"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.async-tungstenite]
version = "0.31"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.axum]
version = "0.8"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.blocking]
version = "1.6"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.concurrent-queue]
version = "2.5"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.core_affinity]
version = "0.8"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.cpal]
optional = true
version = "0.16"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.hound]
optional = true
version = "3.5"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.libc]
version = "0.2"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.ouroboros]
optional = true
version = "0.18"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.rodio]
default-features = false
features = ["symphonia-all"]
optional = true
version = "0.21"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.tokio]
features = ["rt"]
version = "1"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.tower-http]
features = ["add-extension", "cors", "fs"]
version = "0.6"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.tracing-subscriber]
features = ["env-filter", "fmt"]
version = "0.3"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.vmcircbuffer]
version = "0.0.10"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.vulkano]
optional = true
version = "0.35"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.zmq]
optional = true
version = "0.10"
[target.'cfg(target_arch = "wasm32")'.dependencies.cpal]
features = ["wasm-bindgen"]
optional = true
version = "0.16"
[target.'cfg(target_arch = "wasm32")'.dependencies.getrandom]
features = ["wasm_js"]
version = "0.3"
[target.'cfg(target_arch = "wasm32")'.dependencies.gloo-net]
default-features = false
features = ["websocket", "json"]
version = "0.6"
[target.'cfg(target_arch = "wasm32")'.dependencies.gloo-timers]
features = ["futures"]
version = "0.3"
[target.'cfg(target_arch = "wasm32")'.dependencies.js-sys]
version = "0.3"
[target.'cfg(target_arch = "wasm32")'.dependencies.rodio]
default-features = false
optional = true
version = "0.21"
[target.'cfg(target_arch = "wasm32")'.dependencies.serde-wasm-bindgen]
version = "0.6"
[target.'cfg(target_arch = "wasm32")'.dependencies.serde_json]
version = "1.0"
[target.'cfg(target_arch = "wasm32")'.dependencies.tracing-wasm]
version = "0.2"
[target.'cfg(target_arch = "wasm32")'.dependencies.wasm-bindgen]
version = "0.2"
[target.'cfg(target_arch = "wasm32")'.dependencies.wasm-bindgen-futures]
version = "0.4"
[target.'cfg(target_arch = "wasm32")'.dependencies.web-sys]
features = ["Document", "Element", "HtmlElement", "Navigator", "Node", "Usb", "UsbConfiguration", "UsbControlTransferParameters", "UsbDevice", "UsbDeviceFilter", "UsbDeviceRequestOptions", "UsbInTransferResult", "UsbOutTransferResult", "UsbRecipient", "UsbRequestType", "Window", "WorkerGlobalScope", "WorkerNavigator"]
version = "0.3"
[target.'cfg(target_os = "android")'.dependencies.tracing-android]
version = "0.2"
[target.'cfg(target_os = "linux")'.dependencies.xilinx-dma]
features = ["async"]
optional = true
version = "0.0.10"
[[test]]
name = "apply"
path = "tests/apply.rs"
[[test]]
name = "applyintoiter"
path = "tests/applyintoiter.rs"
[[test]]
name = "bad_block"
path = "tests/bad_block.rs"
[[test]]
name = "channel_source"
path = "tests/channel_source.rs"
[[test]]
name = "combine"
path = "tests/combine.rs"
[[test]]
name = "connect_error"
path = "tests/connect_error.rs"
[[test]]
name = "fail"
path = "tests/fail.rs"
[[test]]
name = "filter"
path = "tests/filter.rs"
[[test]]
name = "finite_source"
path = "tests/finite_source.rs"
[[test]]
name = "fir"
path = "tests/fir.rs"
[[test]]
name = "flowgraph"
path = "tests/flowgraph.rs"
required-features = ["flow_scheduler"]
[[test]]
name = "mocker"
path = "tests/mocker.rs"
[[test]]
name = "moving_avg"
path = "tests/moving_avg.rs"
[[test]]
name = "seify"
path = "tests/seify.rs"
required-features = ["seify_dummy"]
[[test]]
name = "slab"
path = "tests/slab.rs"
[[test]]
name = "source"
path = "tests/source.rs"
[[test]]
name = "split"
path = "tests/split.rs"
[[test]]
name = "tag"
path = "tests/tag.rs"
[[test]]
name = "tpb"
path = "tests/tpb.rs"
required-features = ["tpb_scheduler"]
[[test]]
name = "vulkan"
path = "tests/vulkan.rs"
required-features = ["vulkan"]