SREP 2.91 alpha:
* -f: future-LZ compression; -m1f..-m3f as shortcuts
* -mBYTES for future-LZ decompression
* -nomd5: don't store/check MD5 checksum of every block
"srep -f infile" performs 2-pass compression, storing in the compressed file references to forthcoming LZ matches
"srep infile.srep" decompress such file without additional I/O - all matches are stored in dictionary. Thus, it may decompress from stdin to stdout w/o tempfiles
Unlike ordinal LZ compressors, decompressor's dictionary saves only data that will be really used at some future moment. This significantly reduces RAM needs. Examples:
1) 22 gb file from LostPlanet2 compressed down to 7 gb and require 2 gb of RAM for decompression. For comparison, REP:2gb compressed the same file only to 8.7 gb - i.e. 20% more
2) dll700.dll from my testset:
184 mb: compressed with lzma:64m
177 mb: compressed with rep:256m+lzma:64m
171 mb: compressed with lzma:256m
121 mb: compressed with srep+lzma:64m, while only 200+64 mb RAM required for decompression
The only way to limit memory usage at decompression is -mBYTES option - it will store in RAM only matches less than BYTES long. Other matches will be copied, as usual, directly from output file (therefore you can't decompress to stdout with -m). Example:
Код: srep -f infile
srep -m128kb infile.srep