github.com/mutagen-io/mutagen@v0.18.0-rc1/pkg/synchronization/compression/deflate.go (about) 1 package compression 2 3 import ( 4 "io" 5 6 "github.com/klauspost/compress/flate" 7 8 "github.com/mutagen-io/mutagen/pkg/stream" 9 ) 10 11 // compressDeflate implements compression for DEFLATE streams. 12 func compressDeflate(compressed io.Writer) stream.WriteFlushCloser { 13 // Create the compressor. We check for errors, but we don't include them as 14 // part of the interface because they can only occur with an invalid 15 // compressor configuration (which can't occur when we only use defaults). 16 compressor, err := flate.NewWriter(compressed, flate.DefaultCompression) 17 if err != nil { 18 panic("DEFLATE compressor construction failed") 19 } 20 21 // Success. 22 return compressor 23 } 24 25 // decompressDeflate implements decompression for DEFLATE streams. 26 func decompressDeflate(compressed io.Reader) io.ReadCloser { 27 return flate.NewReader(compressed) 28 }