Documentation ¶
Index ¶
Constants ¶
const ( // Byte value used as canary when using Gzip format CompressionCanaryGzip byte = 'G' // Byte value used as canary when using Lzw format CompressionCanaryLzw byte = 'L' CompressionTypeLzw = "lzw" CompressionTypeGzip = "gzip" )
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 ¶
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.
Types ¶
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
When using CompressionTypeGzip, the compression levels can also be chosen: * gzip.DefaultCompression * gzip.BestSpeed * gzip.BestCompression