Awesome
lz4-delphi
Delphi bindings for lz4.
Includes easy-to-use wrapper class and an default mode implementation of the new lz4s streaming format.
A Binding for xxHash is also present, since it is necessary for lz4s;
Lz4 Version 1.10.0;
Object Files
Contributed binaries are build using BCC 11.2.
Compability
Tested with RadStudio/Delphi 7, XE2-XE8, 10.0-10.4, 11 and 12.
Licence
See Licence files:
Speed and Validation Test
System: Intel Core i7 M640 Dual Core, 2.80GHz, 8GB RAM
Input: 270MB Dicom Medical Image File
LZ4 ( pure lz4 )
LZ4SS ( lz4s via TMemoryStream )
LZ4SSN ( lz4s via TMemoryStream - no Hash Stream Checks )
LZ4SM ( lz4s via Memory Pointer )
LZ4SMN ( lz4s via Memory Pointer - no Hash Stream Checks )
LZ4 Delphi Binding Library Test
LZ4: 276676254 -> 168943648 ( 61,06%), 436,13 MB/s
LZ4: 276676254 <- 168943648 ( 61,06%), 1589,51 MB/s
LZ4SS: 276676254 -> 168944258 ( 61,06%), 136,36 MB/s
LZ4SS: 276676254 <- 168944258 ( 61,06%), 203,44 MB/s
LZ4SSN: 276676254 -> 168944254 ( 61,06%), 190,10 MB/s
LZ4SSN: 276676254 <- 168944254 ( 61,06%), 293,83 MB/s
LZ4SM: 276676254 -> 168944239 ( 61,06%), 211,43 MB/s
LZ4SM: 276676254 <- 168944239 ( 61,06%), 451,04 MB/s
LZ4SMN: 276676254 -> 168944235 ( 61,06%), 313,37 MB/s
LZ4SMN: 276676254 <- 168944235 ( 61,06%), 1474,07 MB/s
SynLZ: 276676254 -> 155036174 ( 56,04%), 362,44 MB/s
SynLZ: 277761274 <- 155036174 ( 55,82%), 330,29 MB/s
Implementation is compared to SynLZ
Comparism using Yann Collets with lz4 delivered fullbench32.exe.
Only necessary results are shown:
*** LZ4 speed analyzer r118 32-bits, by Yann Collet (Jul 3 2014) ***
LZ4_compress : 276676254 -> 168969345 (61.07%), 463.1 MB/s
LZ4_compress_continue : 276676254 -> 168943960 (61.06%), 330.7 MB/s
LZ4_decompress_safe : 276676254 -> 1645.6 MB/s
Support
Please open a ticket or contribute a bugifx / improvement.
No commercial support, at the moment.