libRaptorQ
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.
Features
- RFC6330 API (complex, not recommended)
- RAW API (simpler, recommended)
- multi language:
- header only C++11
- compiled, C
- compiled, C++98
- cached precomputations (configurable)
Documentation
Please have a look at the "test" and "examples" directory for some examples of C and C++ tests.
You can read the documentation:
- for the old v0.1.X release
- for the new v1.X release, RFC6330 API
- for the new v1.X release, RaptorQ API (todo)
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 code
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.
License
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),
Contributions
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.
You can look at the Contacts page for more information.