August 4, 2026

Static cling, but make it space

Show HN: SIMD Viterbi Decoder in Rust

Rust code for fixing garbled signals has commenters dreaming of satellites and nerding out

TLDR: A developer showed off a Rust tool that fixes damaged radio and satellite data and says it can beat older options on modern PCs. Commenters were less interested in benchmarks than in geeking out over the famous math behind it and asking the only important question: can it help decode weather satellite signals?

A new Rust project dropped on Hacker News, and while the code is all about repairing broken messages sent through noisy radio and space links, the real fun is watching the comments light up with recognition, confusion, and a little bit of awe. The project, called fec, is basically a toolkit for cleaning up corrupted data — the kind of thing that matters when you're dealing with software-defined radio, satellites, and even spacecraft telemetry. The creator says it can outperform older C libraries on some modern Intel chips, and even includes a compatibility layer so old code can swap it in without a meltdown.

But the comments quickly turned into a mini fan club for one specific idea: Viterbi, the math trick at the heart of the decoder. One commenter had a full-on “wait, that Viterbi?” moment after realizing the same algorithm shows up in totally different worlds, from radio signals to language tools. That kicked off the thread’s biggest mood: delight at seeing one nerdy concept pop up everywhere like the tech world’s version of a surprise celebrity cameo.

Then came the practical dreamers. Another commenter immediately asked whether this could help decode signals from GOES weather satellites, basically turning the post into a "could this power my space side quest?" discussion. There wasn’t much outright fighting here, but there was a classic Hacker News flavor of humble brag meets curiosity: half the room marveling at elegant math, the other half already planning to use it to pull data out of the sky.

Key Points

  • The Rust crate **fec** implements forward error correction for SDR, space, and satellite applications using convolutional codes with Viterbi decoding and Reed–Solomon codes over GF(2⁸).
  • Its convolutional decoder supports hard and soft decisions, common code configurations, rates from 1/2 to 1/8, and orders from k=4 to k=16.
  • On nightly Rust, a `simd` feature enables Viterbi decoder acceleration on SSE, AVX2, and AVX512.
  • The crate supports the standard CCSDS (255,223) Reed–Solomon code, including conventional and dual-basis spacecraft telemetry representations.
  • The project is bit-compatible with Phil Karn’s libfec, includes a libfec-compatible C ABI through **fec-shim**, and claims better x86 performance than libcorrect and libfec when SIMD is enabled.

Hottest takes

"What an amazing algorithm, to show up in so many different places" — ChadNauseam
"Could this library be used decode signals from a GOES satellite downlink?" — eminence32
"building a rust version might be fun" — eminence32
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.