Documentation ¶
Overview ¶
Package xz supports the compression and decompression of xz files. It supports version 1.0.4 of the specification without the non-LZMA2 filters. See http://tukaani.org/xz/xz-file-format-1.0.4.txt
Example ¶
const text = "The quick brown fox jumps over the lazy dog." var buf bytes.Buffer // compress text w, err := NewWriter(&buf) if err != nil { log.Fatalf("NewWriter error %s", err) } if _, err := io.WriteString(w, text); err != nil { log.Fatalf("WriteString error %s", err) } if err := w.Close(); err != nil { log.Fatalf("w.Close error %s", err) } // decompress buffer and write result to stdout r, err := NewReader(&buf) if err != nil { log.Fatalf("NewReader error %s", err) } if _, err = io.Copy(os.Stdout, r); err != nil { log.Fatalf("io.Copy error %s", err) }
Output: The quick brown fox jumps over the lazy dog.
Index ¶
Examples ¶
Constants ¶
const ( None byte = 0x0 CRC32 byte = 0x1 CRC64 byte = 0x4 SHA256 byte = 0xa )
Constants for the checksum methods supported by xz.
const HeaderLen = 12
HeaderLen provides the length of the xz file header.
Variables ¶
This section is empty.
Functions ¶
func ValidHeader ¶
ValidHeader checks whether data is a correct xz file header. The length of data must be HeaderLen.
Types ¶
type Reader ¶
type Reader struct { ReaderConfig // contains filtered or unexported fields }
Reader supports the reading of one or multiple xz streams.
Example ¶
package main import ( "bufio" "io" "log" "os" "github.com/ulikunitz/xz" ) func main() { f, err := os.Open("fox.xz") if err != nil { log.Fatalf("os.Open(%q) error %s", "fox.xz", err) } defer f.Close() r, err := xz.NewReader(bufio.NewReader(f)) if err != nil { log.Fatalf("xz.NewReader(f) error %s", err) } if _, err = io.Copy(os.Stdout, r); err != nil { log.Fatalf("io.Copy error %s", err) } }
Output: The quick brown fox jumps over the lazy dog.
type ReaderConfig ¶ added in v0.5.1
ReaderConfig defines the parameters for the xz reader. The SingleStream parameter requests the reader to assume that the underlying stream contains only a single stream.
func (ReaderConfig) NewReader ¶ added in v0.5.1
func (c ReaderConfig) NewReader(xz io.Reader) (r *Reader, err error)
NewReader creates an xz stream reader. The created reader will be able to process multiple streams and padding unless a SingleStream has been set in the reader configuration c.
func (*ReaderConfig) Verify ¶ added in v0.5.1
func (c *ReaderConfig) Verify() error
Verify checks the reader parameters for Validity. Zero values will be replaced by default values.
type Writer ¶
type Writer struct { WriterConfig // contains filtered or unexported fields }
Writer compresses data written to it. It is an io.WriteCloser.
Example ¶
package main import ( "fmt" "log" "os" "github.com/ulikunitz/xz" ) func main() { f, err := os.Create("example.xz") if err != nil { log.Fatalf("os.Open(%q) error %s", "example.xz", err) } defer f.Close() w, err := xz.NewWriter(f) if err != nil { log.Fatalf("xz.NewWriter(f) error %s", err) } defer w.Close() _, err = fmt.Fprintln(w, "The brown fox jumps over the lazy dog.") if err != nil { log.Fatalf("fmt.Fprintln error %s", err) } if err = w.Close(); err != nil { log.Fatalf("w.Close() error %s", err) } }
Output:
type WriterConfig ¶ added in v0.5.1
type WriterConfig struct { Properties *lzma.Properties DictCap int BufSize int BlockSize int64 // checksum method: CRC32, CRC64 or SHA256 (default: CRC64) CheckSum byte // Forces NoChecksum (default: false) NoCheckSum bool // match algorithm Matcher lzma.MatchAlgorithm }
WriterConfig describe the parameters for an xz writer.
func (WriterConfig) NewWriter ¶ added in v0.5.1
func (c WriterConfig) NewWriter(xz io.Writer) (w *Writer, err error)
NewWriter creates a new Writer using the given configuration parameters.
func (*WriterConfig) Verify ¶ added in v0.5.1
func (c *WriterConfig) Verify() error
Verify checks the configuration for errors. Zero values will be replaced by default values.
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
cmd
|
|
gxz
Command gxz supports the compression and decompression of LZMA files.
|
Command gxz supports the compression and decompression of LZMA files. |
xb
Command xb supports the xz for Go project builds.
|
Command xb supports the xz for Go project builds. |
internal
|
|
gflag
Package gflag implements GNU-style command line flag parsing.
|
Package gflag implements GNU-style command line flag parsing. |
hash
Package hash provides rolling hashes.
|
Package hash provides rolling hashes. |
randtxt
Package randtxt supports the generation of random text using a trigram model for the English language.
|
Package randtxt supports the generation of random text using a trigram model for the English language. |
term
Package term provides the IsTerminal function.
|
Package term provides the IsTerminal function. |
xlog
Package xlog provides a simple logging package that allows to disable certain message categories.
|
Package xlog provides a simple logging package that allows to disable certain message categories. |
Package lzma supports the decoding and encoding of LZMA streams.
|
Package lzma supports the decoding and encoding of LZMA streams. |