
LibRaptorQ: Fountain Codes for C/C++ - bb88
https://fenrirproject.org/Luker/libRaptorQ
======
bb88
Fountain codes provide a reliable encoding stream for UDP. This prevents the
need to use a complex transport on top of UDP for both unicast and multicast
streams.

------
eigenvalue
These fountain codes are some of the coolest and most useful algorithms
around. It really is almost like magic, even after you know how they work. I
wrote an article a couple years ago about using them for an off-chain file
storage layer for a bitcoin-like blockchain that gives a basic overview of why
they are useful: [https://bit.ly/2Y0ut6X](https://bit.ly/2Y0ut6X)

------
vardump
What's the current patent status?

~~~
wmf
[https://datatracker.ietf.org/ipr/2554/](https://datatracker.ietf.org/ipr/2554/)

~~~
bb88
It looks like they've always reserved patents for use in any wide-area
wireless. So, 3G/4G/5G handsets and chipsets. I'm pretty sure wifi would not
be included here, since wifi is not wide area.

~~~
phonon
Qualcomm didn't invest Raptor codes (they bought out the earlier LT codes,
which apparently are still patent protected[1]) so it's still somewhat a
concern.

[1]
[https://patents.google.com/patent/US7139960B2/en](https://patents.google.com/patent/US7139960B2/en)

------
phonon
Rust version is faster and in active development.

[https://github.com/cberner/raptorq](https://github.com/cberner/raptorq)

[https://www.cberner.com/2019/03/30/raptorq-rfc6330-rust-
opti...](https://www.cberner.com/2019/03/30/raptorq-rfc6330-rust-
optimization/)

~~~
ncmncm
Citation needed.

The Rust thing goes at about 1 Gbps. It doesn't say how fast this one is. "In
active development" can mean "not mature yet".

