mirror of
https://github.com/schollz/croc.git
synced 2024-11-28 01:16:10 +03:00
Added zstd as a compression algorithm
This commit is contained in:
parent
1517767129
commit
4f8b2aba9b
1
go.mod
1
go.mod
@ -19,6 +19,7 @@ require (
|
|||||||
)
|
)
|
||||||
|
|
||||||
require (
|
require (
|
||||||
|
github.com/DataDog/zstd v1.5.2
|
||||||
github.com/OneOfOne/xxhash v1.2.5 // indirect
|
github.com/OneOfOne/xxhash v1.2.5 // indirect
|
||||||
github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect
|
github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect
|
||||||
github.com/davecgh/go-spew v1.1.1 // indirect
|
github.com/davecgh/go-spew v1.1.1 // indirect
|
||||||
|
2
go.sum
2
go.sum
@ -1,4 +1,6 @@
|
|||||||
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
|
||||||
|
github.com/DataDog/zstd v1.5.2 h1:vUG4lAyuPCXO0TLbXvPv7EB7cNK1QV/luu55UHLrrn8=
|
||||||
|
github.com/DataDog/zstd v1.5.2/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw=
|
||||||
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
|
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
|
||||||
github.com/OneOfOne/xxhash v1.2.5 h1:zl/OfRA6nftbBK9qTohYBJ5xvw6C/oNKizR7cZGl3cI=
|
github.com/OneOfOne/xxhash v1.2.5 h1:zl/OfRA6nftbBK9qTohYBJ5xvw6C/oNKizR7cZGl3cI=
|
||||||
github.com/OneOfOne/xxhash v1.2.5/go.mod h1:eZbhyaAYD41SGSSsnmcpxVoRiQ/MPUTjUdIIOT9Um7Q=
|
github.com/OneOfOne/xxhash v1.2.5/go.mod h1:eZbhyaAYD41SGSSsnmcpxVoRiQ/MPUTjUdIIOT9Um7Q=
|
||||||
|
@ -2,9 +2,10 @@ package compress
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"compress/flate"
|
|
||||||
"io"
|
"io"
|
||||||
|
|
||||||
|
"github.com/DataDog/zstd"
|
||||||
|
|
||||||
log "github.com/schollz/logger"
|
log "github.com/schollz/logger"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -30,22 +31,18 @@ func Decompress(src []byte) []byte {
|
|||||||
return deCompressedData.Bytes()
|
return deCompressedData.Bytes()
|
||||||
}
|
}
|
||||||
|
|
||||||
// compress uses flate to compress a byte slice to a corresponding level
|
// compress uses zstd to compress a byte slice to a corresponding level
|
||||||
func compress(src []byte, dest io.Writer, level int) {
|
func compress(src []byte, dest io.Writer, level int) {
|
||||||
compressor, err := flate.NewWriter(dest, level)
|
compressor := zstd.NewWriterLevel(dest, level)
|
||||||
if err != nil {
|
|
||||||
log.Debugf("error level data: %v", err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if _, err := compressor.Write(src); err != nil {
|
if _, err := compressor.Write(src); err != nil {
|
||||||
log.Debugf("error writing data: %v", err)
|
log.Debugf("error writing data: %v", err)
|
||||||
}
|
}
|
||||||
compressor.Close()
|
compressor.Close()
|
||||||
}
|
}
|
||||||
|
|
||||||
// compress uses flate to decompress an io.Reader
|
// decompress uses zstd to decompress an io.Reader
|
||||||
func decompress(src io.Reader, dest io.Writer) {
|
func decompress(src io.Reader, dest io.Writer) {
|
||||||
decompressor := flate.NewReader(src)
|
decompressor := zstd.NewReader(src)
|
||||||
if _, err := io.Copy(dest, decompressor); err != nil {
|
if _, err := io.Copy(dest, decompressor); err != nil {
|
||||||
log.Debugf("error copying data: %v", err)
|
log.Debugf("error copying data: %v", err)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user