You could certainly call this crate through a shim in goestools but you'd have to add a Rust dependency. But you could also rewrite goestools in Rust, though it wouldn't be a small undertaking. This crate does have everything you'd need for the forward error correction, at least.
I used the benchmarking binaries that ship with libfec. My own crate has a libfec-compatible C shim, so I can link the benchmark against the Rust crate. The benchmark itself reports time spent for a given number of iterations, so the throughput can just be extrapolated from that.
"How do you find the speed of the Rust version of your FEC vs, the C version?"
translates from "Australian" to "English" as:
"What is the speed of the Rust version of your FEC vs, the C version?
Though it was interesting to know how you do it. I'm interested in the speed, as I once looked into using Rust for a signal processing project, but ultimately went with C++ because the team wasn't familiar with Rust. At the time, it seemed to me that Rust had the potential to go faster.
Oh! Gotcha! I put a table in the README that lays it all out <a href="https://github.com/brian-armstrong/fec#performance" rel="nofollow">https://github.com/brian-armstrong/fec#performance
tldr: My library matches or beats libfec's SSE2 assembly for convolutional codes and pretty steadily beats it in Reed-Solomon. For the convolutional codes, my crate is using a generic, templated decoder rather than hand-written assembly, so it was nice to see that I could match the performance.
eminence32 · · focus · HN ↗
[1] <a href="https://github.com/pietern/goestools" rel="nofollow">https://github.com/pietern/goestools
brian-armstrong · · focus · HN ↗
femto · · focus · HN ↗
brian-armstrong · · focus · HN ↗
femto · · focus · HN ↗
"How do you find the speed of the Rust version of your FEC vs, the C version?"
translates from "Australian" to "English" as:
"What is the speed of the Rust version of your FEC vs, the C version?
Though it was interesting to know how you do it. I'm interested in the speed, as I once looked into using Rust for a signal processing project, but ultimately went with C++ because the team wasn't familiar with Rust. At the time, it seemed to me that Rust had the potential to go faster.
brian-armstrong · · focus · HN ↗
tldr: My library matches or beats libfec's SSE2 assembly for convolutional codes and pretty steadily beats it in Reed-Solomon. For the convolutional codes, my crate is using a generic, templated decoder rather than hand-written assembly, so it was nice to see that I could match the performance.
femto · · focus · HN ↗