Transport, encryption, authentication protocol
This project is maintained by Luca Fulchir
RSS feedA lot of time passed, what happened?
I have not been slacking, but I have not been working much on Fenrir lately.
That’s because a lot of work has been done in libRaptorQ, that Fenrir will use.
If you don’t remember, libRaptorQ is a C++11 implementation of the RaptorQ Forward Error Correcting algorithm, and implements RFC6330, too.
I am developing the project in order to use it into Fenrir for error correction.
So what happened?
This happened:
Branch v0.1.X:
$ cd src $ cloc . 22 text files. 21 unique files. 2 files ignored. github.com/AlDanial/cloc v 1.70 T=0.06 s (330.8 files/s, 78425.7 lines/s) ------------------------------------------------------------------------------- Language files blank comment code ------------------------------------------------------------------------------- C/C++ Header 14 308 488 1922 C++ 7 177 396 1688 ------------------------------------------------------------------------------- SUM: 21 485 884 3610 -------------------------------------------------------------------------------
Branch master (v1.0.X):
$ cd src $ cloc . 52 text files. 52 unique files. 1 file ignored. github.com/AlDanial/cloc v 1.70 T=0.15 s (338.5 files/s, 118503.8 lines/s) ------------------------------------------------------------------------------- Language files blank comment code ------------------------------------------------------------------------------- C/C++ Header 43 1128 1557 9100 C++ 8 320 350 5397 ------------------------------------------------------------------------------- SUM: 51 1448 1907 14497 -------------------------------------------------------------------------------
So yeah, the library got bigger.
That is mainly wrappers around the core, which should be around 3k lines by itself.
The RFC API was needlessly complex, and gave headaches to a lot of people.
It’s not gone, but a new RAW API was developed for a more low-level approach.
I have said it multiple times, but RFC6330 sucks. Use the new API!
libRaptorQ can now be used in C++11 as a header-only library. But the linked library exports the C,C++98 and C++11 interface, too!
The header-only and linked library provide exactly the same interface, so you can switch between them really easily by changing an include.
Finally, we have precomputation caching. Since it makes little sense to compute the same symbol dependency matrix every time, we cache an incomplete version that we can easily use with different input data.
If all of this is not enough for you, there is also a new tool to easily split some input in multiple symbols and repair symbols, and then recombine it all back to the original file.
libRaptorQ is almost ready for v1.0.0.
There are still some quirks to iron out, but it should be finished in not much time.
The documentation is also lacking.
Meanwhile, a complete rewrite of the Fenrir code has started.
What was wrong with the old code? A lot. But since I decided to rewrite the whole things, I decided to use the Foonathan’s type_safe library. That should give us much more stability and safety than before, while taking away some headaches that implicit conversion gave me.
I promise more updates from now on, and I will soon switch my full attention back to the Fenrir code.
-Luker