This package will probably not be maintained. Instead, use the better 'fst'
package, see http://www.fstpackage.org/, which now includes faster and better
in-memory compression methods fst::compress_fst and fst::decompress_fst
covered here, as well as several file-based compression options.
Note that neither this package nor the fst package include proper streaming options to arbitrary connections...something someone should add to fst!
October, 2018: there were some severe internal lz4 bugs that apparently also affect the fst package. I re-activated this repository to update lz4 for those who are still using it, and will file bug reports against fst...
However, one potential advantage of this package is default single-threaded
operation (when used in process-parallel settings)--although that can be
overcome with a function in the fst package, and compatability with the
command line lz4 file format, see for instance the example in the help page for
?lzDecompress.
Easiest to install with the devtools package:
devtools::install_github("bwlewis/lz4")
library(lz4)
?lzCompressAdd data streaming functions! ANYONE WANT TO HELP ADD THESE?
LZ4 is lossless compression algorithm, providing compression speed at 400 MB/s per core (0.16 Bytes/cycle). It features an extremely fast decoder, with speed in multiple GB/s per core (0.71 Bytes/cycle).
At least two other R packages, the http://www.bioconductor.org/packages/release/bioc/html/gdsfmt.html package from the Bioconductor, and https://github.com/fstPackage, use the lz4 library. However both packages are sufficiently specialized implementation that I decided to write this much simpler, limited package with a focus only on compression to promote software modularity.
See http://www.lz4.org for more on lz4.