#!ruby # # This code is under public domain (CC0) # . # # To the extent possible under law, dearblue has waived all copyright # and related or neighboring rights to this work. # # dearblue # # need for calcration crc32 in this example class String require "zlib" def crc32 Zlib.crc32(self) end end ######## # first, load library require "extlz4" # prepair source data src = File.read(ARGV[0] || __FILE__, mode: "rb") puts "%s:%d: src.bytesize=%d, src.crc32=0x%08X\n" % [__FILE__, __LINE__, src.bytesize, src.crc32] # compress data by LZ4 Frame encdata = LZ4.encode(src) # OR, encdata = LZ4.encode(src, level = 1) puts "%s:%d: encdata.bytesize=%d, encdata.crc32=0x%08X\n" % [__FILE__, __LINE__, encdata.bytesize, encdata.crc32] decdata = LZ4.decode(encdata) puts "%s:%d: decdata.bytesize=%d, decdata.crc32=0x%08X\n" % [__FILE__, __LINE__, decdata.bytesize, decdata.crc32] puts "%s:%d: comparison source data and decompressed data: %s\n" % [__FILE__, __LINE__, src == decdata ? "SAME" : "NOT SAME (BUG!)"]