compressutil

package
v0.14.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 10, 2024 License: MPL-2.0 Imports: 7 Imported by: 13

Documentation

Index

Constants

View Source
const (
	CompressionTypeGzip        = "gzip"
	CompressionCanaryGzip byte = 'G'

	CompressionTypeLZW        = "lzw"
	CompressionCanaryLZW byte = 'L'

	CompressionTypeSnappy        = "snappy"
	CompressionCanarySnappy byte = 'S'

	CompressionTypeLZ4        = "lz4"
	CompressionCanaryLZ4 byte = '4'
)

Variables

This section is empty.

Functions

func Compress

func Compress(data []byte, config *CompressionConfig) ([]byte, error)

Compress places the canary byte in a buffer and uses the same buffer to fill in the compressed information of the given input. The configuration supports two type of compression: LZW and Gzip. When using Gzip compression format, if GzipCompressionLevel is not specified, the 'gzip.DefaultCompression' will be assumed.

func Decompress

func Decompress(data []byte) ([]byte, bool, error)

Decompress checks if the first byte in the input matches the canary byte. If the first byte is a canary byte, then the input past the canary byte will be decompressed using the method specified in the given configuration. If the first byte isn't a canary byte, then the utility returns a boolean value indicating that the input was not compressed.

func DecompressWithCanary added in v0.4.0

func DecompressWithCanary(data []byte) ([]byte, string, bool, error)

DecompressWithCanary checks if the first byte in the input matches the canary byte. If the first byte is a canary byte, then the input past the canary byte will be decompressed using the method specified in the given configuration. The type of compression used is also returned. If the first byte isn't a canary byte, then the utility returns a boolean value indicating that the input was not compressed.

Types

type CompressUtilReadCloser

type CompressUtilReadCloser struct {
	io.Reader
}

CompressUtilReadCloser embeds the snappy reader which implements the io.Reader interface. The decompress procedure in this utility expects an io.ReadCloser. This type implements the io.Closer interface to retain the generic way of decompression.

func (*CompressUtilReadCloser) Close

func (c *CompressUtilReadCloser) Close() error

Close is a noop method implemented only to satisfy the io.Closer interface

type CompressionConfig

type CompressionConfig struct {
	// Type of the compression algorithm to be used
	Type string

	// When using Gzip format, the compression level to employ
	GzipCompressionLevel int
}

CompressionConfig is used to select a compression type to be performed by Compress and Decompress utilities. Supported types are: * CompressionTypeLZW * CompressionTypeGzip * CompressionTypeSnappy * CompressionTypeLZ4

When using CompressionTypeGzip, the compression levels can also be chosen: * gzip.DefaultCompression * gzip.BestSpeed * gzip.BestCompression

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL