mfsk-core 0.4.0

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.
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 = "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"))']