
- Category
- Other
- Website
- github.com
- Language
- English
- Listed
- 17d ago
- Stars
- 48
- Forks
- 2
brian-armstrong/fec ↗· Rust· BSD-3-Clause· Last commit 15d ago
fec is a Rust crate covering the two error correcting codes that keep showing up in software defined radio and spacecraft links. The first is convolutional coding with a Viterbi decoder, in hard and soft decision form, including the well worn rate 1/2 k=7, rate 1/2 k=9, rate 1/3 k=9 and rate 1/6 k=15 configurations, and it takes any rate from 1/2 to 1/8 and any constraint length from 4 to 16. Turning on the simd feature, which needs nightly Rust, brings in a Viterbi decoder accelerated with SSE, AVX2 or AVX512.
The second is Reed-Solomon over GF(2^8) with both error and erasure decoding, and it ships CCSDS (255,223) in the conventional representation as well as the dual basis (Berlekamp) form that goes over the wire, with parameters taken from the published CCSDS standard. Measured on a Ryzen 7840HS through libfec's own test programs, the author found it decoding faster than libfec on every code. The crate grew out of the same author's C library libcorrect and carries a BSD-3-Clause licence.