-
Notifications
You must be signed in to change notification settings - Fork 143
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
28 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
# lz4 | ||
LZ4 compression and decompression in pure Go | ||
|
||
## Usage | ||
|
||
```go | ||
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. |