[chore](trx-rs): remove unused external ft8_lib
Delete the obsolete ft8_lib submodule and update documentation to point at the pure Rust trx-ftx decoder. Co-authored-by: OpenAI Codex <codex@openai.com> Signed-off-by: Stan Grams <sjg@haxx.space>
This commit is contained in:
@@ -5,6 +5,3 @@
|
|||||||
[submodule "docs"]
|
[submodule "docs"]
|
||||||
path = docs
|
path = docs
|
||||||
url = http://github.com/sgrams/trx-rs.wiki.git
|
url = http://github.com/sgrams/trx-rs.wiki.git
|
||||||
[submodule "external/ft8_lib"]
|
|
||||||
path = external/ft8_lib
|
|
||||||
url = ssh://git@github.com/sgrams/ft8_lib.git
|
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ src/
|
|||||||
decoders/
|
decoders/
|
||||||
trx-aprs/ # APRS packet decoder
|
trx-aprs/ # APRS packet decoder
|
||||||
trx-cw/ # CW (Morse) decoder
|
trx-cw/ # CW (Morse) decoder
|
||||||
trx-ft8/ # FT8 decoder (wraps external ft8_lib C library)
|
trx-ftx/ # Pure Rust FTx decoder (FT8/FT4/FT2)
|
||||||
trx-wspr/ # WSPR decoder
|
trx-wspr/ # WSPR decoder
|
||||||
trx-decode-log/ # Shared decoder logging (JSON Lines, date-rotated files)
|
trx-decode-log/ # Shared decoder logging (JSON Lines, date-rotated files)
|
||||||
```
|
```
|
||||||
@@ -86,7 +86,7 @@ The rig controller (`src/trx-core/src/rig/controller/`) is the central state man
|
|||||||
|
|
||||||
### Decoders
|
### Decoders
|
||||||
|
|
||||||
Signal decoders run as background tasks in `trx-server`, consuming decoded audio. `trx-ft8` wraps a C library (`external/ft8_lib`). Decoded frames can be forwarded to PSKReporter and APRS-IS (IGate) uplinks, or logged via `trx-decode-log`.
|
Signal decoders run as background tasks in `trx-server`, consuming decoded audio. `trx-ftx` provides the FT8/FT4/FT2 decoder in pure Rust. Decoded frames can be forwarded to PSKReporter and APRS-IS (IGate) uplinks, or logged via `trx-decode-log`.
|
||||||
|
|
||||||
### Plugin system
|
### Plugin system
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -52,7 +52,7 @@ Target users are amateur radio operators who want networked, automated, or multi
|
|||||||
| CAT serial | tokio-serial |
|
| CAT serial | tokio-serial |
|
||||||
| CLI | clap |
|
| CLI | clap |
|
||||||
| Logging | tracing / tracing-subscriber |
|
| Logging | tracing / tracing-subscriber |
|
||||||
| FT8 decode | ft8_lib (external C library via FFI) |
|
| FTx decode | trx-ftx (pure Rust) |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -144,7 +144,7 @@ trx-rs/ # Workspace root
|
|||||||
└── decoders/
|
└── decoders/
|
||||||
├── trx-aprs/ # APRS packet decoder
|
├── trx-aprs/ # APRS packet decoder
|
||||||
├── trx-cw/ # CW / Morse decoder
|
├── trx-cw/ # CW / Morse decoder
|
||||||
├── trx-ft8/ # FT8 decoder (wraps ft8_lib C library)
|
├── trx-ftx/ # Pure Rust FTx decoder (FT8/FT4/FT2)
|
||||||
├── trx-wspr/ # WSPR beacon decoder
|
├── trx-wspr/ # WSPR beacon decoder
|
||||||
├── trx-rds/ # FM RDS decoder
|
├── trx-rds/ # FM RDS decoder
|
||||||
└── trx-decode-log/ # JSON Lines log rotation for decoded frames
|
└── trx-decode-log/ # JSON Lines log rotation for decoded frames
|
||||||
@@ -704,7 +704,7 @@ All decoders run as background Tokio tasks inside `trx-server`. They subscribe t
|
|||||||
|-------|---------|-------|
|
|-------|---------|-------|
|
||||||
| `trx-aprs` | APRS (AX.25) | Forwards to APRS-IS if enabled |
|
| `trx-aprs` | APRS (AX.25) | Forwards to APRS-IS if enabled |
|
||||||
| `trx-cw` | CW / Morse | Auto WPM detection |
|
| `trx-cw` | CW / Morse | Auto WPM detection |
|
||||||
| `trx-ft8` | FT8 | Wraps `external/ft8_lib` C library via FFI; posts to PSKReporter |
|
| `trx-ftx` | FTx | Pure Rust FT8/FT4/FT2 decoder; posts to PSKReporter |
|
||||||
| `trx-wspr` | WSPR beacons | Posts to PSKReporter |
|
| `trx-wspr` | WSPR beacons | Posts to PSKReporter |
|
||||||
| `trx-rds` | FM RDS | Station name, radiotext, time |
|
| `trx-rds` | FM RDS | Station name, radiotext, time |
|
||||||
| `trx-decode-log` | Logging infrastructure | JSON Lines, date-rotated files |
|
| `trx-decode-log` | Logging infrastructure | JSON Lines, date-rotated files |
|
||||||
|
|||||||
Vendored
-1
Submodule external/ft8_lib deleted from f5421c3972
@@ -2,9 +2,9 @@
|
|||||||
|
|
||||||
## Goal
|
## Goal
|
||||||
|
|
||||||
Replace `trx-ft8` (C FFI wrapper around ft8_lib + custom FT2 code) with a pure Rust
|
`trx-ftx` is the pure Rust replacement for the old `trx-ft8` C FFI wrapper.
|
||||||
implementation. The new `trx-ftx` crate provides the exact same public API
|
It provides the same public API (`Ft8Decoder`, `Ft8DecodeResult`) so it can
|
||||||
(`Ft8Decoder`, `Ft8DecodeResult`) so it is a drop-in replacement.
|
serve as a drop-in decoder implementation.
|
||||||
|
|
||||||
## Why
|
## Why
|
||||||
|
|
||||||
@@ -85,21 +85,22 @@ hound = "3" # WAV file reading for integration tests
|
|||||||
### Phase 5: Migration
|
### Phase 5: Migration
|
||||||
14. Convert `trx-ft8` to thin re-export of `trx-ftx`
|
14. Convert `trx-ft8` to thin re-export of `trx-ftx`
|
||||||
15. Delete C sources: `ft8_wrapper.c`, `ft2_ldpc.c`, `build.rs`
|
15. Delete C sources: `ft8_wrapper.c`, `ft2_ldpc.c`, `build.rs`
|
||||||
|
16. Remove the vendored `ft8_lib` checkout after the port is complete
|
||||||
|
|
||||||
## C Sources Being Ported
|
## Historical C Sources Ported
|
||||||
|
|
||||||
| C Source | Rust Target | Lines |
|
| C Source | Rust Target | Lines |
|
||||||
|----------|-------------|-------|
|
|----------|-------------|-------|
|
||||||
| `external/ft8_lib/ft8/message.c` | `message.rs` | 1156 |
|
| `ft8_lib/ft8/message.c` | `message.rs` | 1156 |
|
||||||
| `src/decoders/trx-ft8/src/ft8_wrapper.c` | `decoder.rs` + `ft2/` | 1800 |
|
| `src/decoders/trx-ft8/src/ft8_wrapper.c` | `decoder.rs` + `ft2/` | 1800 |
|
||||||
| `external/ft8_lib/ft8/decode.c` | `decode.rs` | 773 |
|
| `ft8_lib/ft8/decode.c` | `decode.rs` | 773 |
|
||||||
| `external/ft8_lib/ft8/constants.c` | `constants.rs` | 391 |
|
| `ft8_lib/ft8/constants.c` | `constants.rs` | 391 |
|
||||||
| `external/ft8_lib/ft8/text.c` | `text.rs` | 303 |
|
| `ft8_lib/ft8/text.c` | `text.rs` | 303 |
|
||||||
| `external/ft8_lib/common/monitor.c` | `monitor.rs` | 261 |
|
| `ft8_lib/common/monitor.c` | `monitor.rs` | 261 |
|
||||||
| `external/ft8_lib/ft8/ldpc.c` | `ldpc.rs` | 251 |
|
| `ft8_lib/ft8/ldpc.c` | `ldpc.rs` | 251 |
|
||||||
| `external/ft8_lib/ft8/encode.c` | `encode.rs` | 200 |
|
| `ft8_lib/ft8/encode.c` | `encode.rs` | 200 |
|
||||||
| `external/ft8_lib/ft8/crc.c` | `crc.rs` | 63 |
|
| `ft8_lib/ft8/crc.c` | `crc.rs` | 63 |
|
||||||
| `external/ft8_lib/fft/*.c` | replaced by `rustfft` | 555 |
|
| `ft8_lib/fft/*.c` | replaced by `rustfft` | 555 |
|
||||||
|
|
||||||
## Public API (matches trx-ft8 exactly)
|
## Public API (matches trx-ft8 exactly)
|
||||||
|
|
||||||
@@ -129,5 +130,5 @@ impl Ft8Decoder {
|
|||||||
## Testing Strategy
|
## Testing Strategy
|
||||||
|
|
||||||
- Unit tests per module: CRC round-trip, LDPC recovery, message pack/unpack
|
- Unit tests per module: CRC round-trip, LDPC recovery, message pack/unpack
|
||||||
- Integration tests: decode WAV files from `external/ft8_lib/test/wav/`
|
- Integration tests: decode reference WAV fixtures when available
|
||||||
- Compatibility test: `ft2_uses_distinct_block_size` (FT4=576, FT2=288, window=45000)
|
- Compatibility test: `ft2_uses_distinct_block_size` (FT4=576, FT2=288, window=45000)
|
||||||
|
|||||||
Reference in New Issue
Block a user