Skip to content
/ lz4 Public
forked from pierrec/lz4

LZ4 compression and decompression in pure Go

License

Notifications You must be signed in to change notification settings

foubarre/lz4

This branch is 128 commits behind pierrec/lz4:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

5a3d224 · May 19, 2017

History

32 Commits
May 15, 2017
Oct 16, 2016
May 15, 2017
Mar 31, 2017
May 19, 2017
Mar 14, 2015
Jan 12, 2016
Feb 26, 2017
Mar 14, 2015
Feb 26, 2017
May 19, 2017
Jan 12, 2016
May 15, 2017

Repository files navigation

godoc Build Status

lz4

LZ4 compression and decompression in pure Go

Usage

import "github.com/pierrec/lz4"

Description

Package lz4 implements reading and writing lz4 compressed data (a frame), as specified in http://fastcompression.blogspot.fr/2013/04/lz4-streaming-format-final.html, using an io.Reader (decompression) and io.Writer (compression). It is designed to minimize memory usage while maximizing throughput by being able to [de]compress data concurrently.

The Reader and the Writer support concurrent processing provided the supplied buffers are large enough (in multiples of BlockMaxSize) and there is no block dependency. Reader.WriteTo and Writer.ReadFrom do leverage the concurrency transparently. The runtime.GOMAXPROCS() value is used to apply concurrency or not.

Although the block level compression and decompression functions are exposed and are fully compatible with the lz4 block format definition, they are low level and should not be used directly. For a complete description of an lz4 compressed block, see: http://fastcompression.blogspot.fr/2011/05/lz4-explained.html

See https://github.com/Cyan4973/lz4 for the reference C implementation.

About

LZ4 compression and decompression in pure Go

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 100.0%