[package]
edition = "2024"
name = "mfsk-core"
version = "0.4.0"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Pure-Rust library for WSJT-family digital amateur-radio modes (FT8/FT4/FST4/WSPR/JT9/JT65/Q65): protocol traits, DSP, FEC codecs, message codecs, decoders and synthesisers — unified behind a zero-cost generic abstraction."
readme = "README.md"
keywords = [
"wsjt",
"ft8",
"q65",
"amateur-radio",
"dsp",
]
categories = [
"science",
"encoding",
"multimedia::audio",
]
license = "GPL-3.0-or-later"
repository = "https://github.com/jl1nie/mfsk-core"
resolver = "2"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
default = [
"ft8",
"ft4",
"parallel",
]
eq-fallback = []
fst4 = []
ft4 = []
ft8 = []
full = [
"ft8",
"ft4",
"fst4",
"wspr",
"jt9",
"jt65",
"q65",
"packet-bytes",
"uvpacket",
]
jt65 = []
jt9 = []
osd-deep = []
packet-bytes = []
parallel = ["dep:rayon"]
q65 = []
uvpacket = ["fst4"]
wspr = []
[lib]
name = "mfsk_core"
path = "src/lib.rs"
[[example]]
name = "uvpacket_samples"
path = "examples/uvpacket_samples.rs"
[[test]]
name = "ft4_diag_low_snr"
path = "tests/ft4_diag_low_snr.rs"
[[test]]
name = "ft4_roundtrip"
path = "tests/ft4_roundtrip.rs"
[[test]]
name = "ft4_snr_sweep"
path = "tests/ft4_snr_sweep.rs"
[[test]]
name = "ft4_timing_budget"
path = "tests/ft4_timing_budget.rs"
[[test]]
name = "ft8_protocol_trait"
path = "tests/ft8_protocol_trait.rs"
[[test]]
name = "ft8_resample"
path = "tests/ft8_resample.rs"
[[test]]
name = "protocol_invariants"
path = "tests/protocol_invariants.rs"
[[test]]
name = "q65_ap_list"
path = "tests/q65_ap_list.rs"
[[test]]
name = "q65_ap_sweep"
path = "tests/q65_ap_sweep.rs"
[[test]]
name = "q65_eme_submodes"
path = "tests/q65_eme_submodes.rs"
[[test]]
name = "q65_fast_fading"
path = "tests/q65_fast_fading.rs"
[[test]]
name = "q65_roundtrip"
path = "tests/q65_roundtrip.rs"
[[test]]
name = "q65_snr_sweep"
path = "tests/q65_snr_sweep.rs"
[[test]]
name = "q65_wsjtx_samples"
path = "tests/q65_wsjtx_samples.rs"
[[test]]
name = "uvpacket_fm_channel"
path = "tests/uvpacket_fm_channel.rs"
[[test]]
name = "uvpacket_ldpc_direct"
path = "tests/uvpacket_ldpc_direct.rs"
[[test]]
name = "uvpacket_multichannel"
path = "tests/uvpacket_multichannel.rs"
[[test]]
name = "uvpacket_per_modes_sweep"
path = "tests/uvpacket_per_modes_sweep.rs"
[[test]]
name = "uvpacket_pi4_dqpsk_eq"
path = "tests/uvpacket_pi4_dqpsk_eq.rs"
[[test]]
name = "uvpacket_snr_calibration"
path = "tests/uvpacket_snr_calibration.rs"
[[test]]
name = "uvpacket_ssb_channel"
path = "tests/uvpacket_ssb_channel.rs"
[dependencies.crc]
version = "3"
[dependencies.num-complex]
version = "0.4"
[dependencies.rayon]
version = "1"
optional = true
[dependencies.rustfft]
version = "6"
[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = ['cfg(feature, values("ft8","ft4","fst4","wspr","jt9","jt65","q65","packet-bytes","uvpacket","parallel","osd-deep","eq-fallback","full"))']