libRaptorQ is a C++11 implementation of the RaptorQ Forward Error Correction, as described in the RFC6330.
Sine the RFC is needlessly complex, a simpler and slightly faster, low level API is available, too.
libRaptroQ can be used as a C++11 header-only library, or compiled and linked with C and C++98 bindings.
The implementation was started as a university laboratory project, and will be later used and included in Fenrir , the maintainer master thesis.
RFC6330 API (complex, not recommended)
RAW API (simpler, recommended)
header only C++11
cached precomputations (configurable)
Please have a look at the "test" and "examples" directory for some examples of C and C++ tests.
You can also build the documentation from the repository by doing "make docs" (needs latex).
Read the Performance page if you are looking to squeeze out every bit of performance from the library
The core algorithm is around 3k lines of code, but all the wrappers for C, C++98 and C++11 bring the code size up to 13k.
The chosen language is C++11, and there currently are two main branches, following the the 0.1.X release and 1.0.X.
libRaptorQ is dual-lincense, but will always remain usable in LGPL3+.
Dual lincensing is used to give flexibility for future license problems, and for people who can not use LGPL3. (contact me for info),
For more informations check the "CONTRIBUTING.md" file in the repository.
If you want to contribute, I only accept contributions after the signing of a CLA, which lets me double-license this work. The reasons are in the CLA section
NOTE: RFC6330 has some strict requirements for compliance: We seem to be OK. Check the Compliance page.