Hello !
AS fastLZ was referenced on stackoverflow for embbeded dev I did a try on it yesterday.
First I really like the smplest integration I could see : a pair of file, no configure or complicated script to handle fore having the source file to compile.
I tested 6pack on a 450 Mb containing many zéro data and it is extremely fast on a core2quad : 8,35 Mb gotten in less than 1 second
The problem a got is the API : I shall give the whole buffer in one call, and this complicate the streaming data.
For example
LZ4 has 2 call to respectively add data to compress to the existing compressed buffer, and to finish the frame.
Such API is interesting as I want to transmit on USB data stored on the flash from my STM32 Nucleo board with the following scenarion :
- the frame has a fixed max size : 4 k.
- I must send data size 4k => I use compression.
- After initialization I set 3 k to compress (maybe this chunck data si not so much compressible and the compressor added a header)
- I then add the remaining data size in frame to compress
- and so on...
- I finalize the compression.