Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

LZ4 compression and decompression in pure Go

License

NotificationsYou must be signed in to change notification settings

pierrec/lz4

Repository files navigation

Go ReferenceCIGo Report CardGitHub tag (latest SemVer)

Overview

This package provides a streaming interface toLZ4 data streams as well as low level compress and uncompress functions for LZ4 data blocks.The implementation is based on the reference Cone.

Install

Assuming you have the go toolchain installed:

go get github.com/pierrec/lz4/v4

There is a command line interface tool to compress and decompress LZ4 files.

go install github.com/pierrec/lz4/v4/cmd/lz4c@latest

Usage

Usage of lz4c:  -version        print the program versionSubcommands:Compress the given files or from stdin to stdout.compress [arguments] [<file name> ...]  -bc        enable block checksum  -l int        compression level (0=fastest)  -sc        disable stream checksum  -size string        block max size [64K,256K,1M,4M] (default "4M")Uncompress the given files or from stdin to stdout.uncompress [arguments] [<file name> ...]

Example

// Compress and uncompress an input string.s := "hello world"r := strings.NewReader(s)// The pipe will uncompress the data from the writer.pr, pw := io.Pipe()zw := lz4.NewWriter(pw)zr := lz4.NewReader(pr)go func() {// Compress the input string._, _ = io.Copy(zw, r)_ = zw.Close() // Make sure the writer is closed_ = pw.Close() // Terminate the pipe}()_, _ = io.Copy(os.Stdout, zr)// Output:// hello world

Contributing

Contributions are very welcome for bug fixing, performance improvements...!

  • Open an issue with a proper description
  • Send a pull request with appropriate test case(s)

Contributors

Thanks to allcontributors so far!

Special thanks to@Zariel for his asm implementation of the decoder.

Special thanks to@greatroar for his work on the asm implementations of the decoder for amd64 and arm64.

Special thanks to@klauspost for his work on optimizing the code.


[8]ページ先頭

©2009-2025 Movatter.jp