Documentation
¶
Overview ¶
Package compression bluetape-go의 compression 기능을 제공한다.
Index ¶
- Variables
- func DecompressLimit(compressor Compressor, data []byte, maxBytes int64) ([]byte, error)
- type Compressor
- func All() []Compressor
- func Default() Compressor
- func Deflate() Compressor
- func DeflateLevel(level int) Compressor
- func Gzip() Compressor
- func GzipLevel(level int) Compressor
- func LZ4() Compressor
- func Snappy() Compressor
- func Zlib() Compressor
- func ZlibLevel(level int) Compressor
- func Zstd() Compressor
- func ZstdLevel(level zstd.EncoderLevel) Compressor
Examples ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ErrDecompressedSizeExceeded = errors.New("decompressed size exceeded")
ErrDecompressedSizeExceeded 패키지에서 공개하는 변수 값이다.
Functions ¶
func DecompressLimit ¶ added in v0.6.8
func DecompressLimit(compressor Compressor, data []byte, maxBytes int64) ([]byte, error)
DecompressLimit 압축 해제 결과가 limit을 넘지 않도록 제한한다.
매개변수:
- compressor: DecompressLimit에 전달되는 값이다. 허용 범위와 nil 처리 방식은 구현 검증을 따른다.
- data: DecompressLimit가 처리할 값 목록이다. nil과 빈 슬라이스는 구현의 입력 규칙에 따라 처리한다.
- maxBytes: DecompressLimit에 전달되는 값이다. 허용 범위와 nil 처리 방식은 구현 검증을 따른다.
반환 오류는 입력 검증 실패와 패키지에서 정의한 sentinel error/typed error를 그대로 드러낸다.
Types ¶
type Compressor ¶
type Compressor interface {
Name() string
Compress([]byte) ([]byte, error)
Decompress([]byte) ([]byte, error)
NewWriter(io.Writer) (io.WriteCloser, error)
NewReader(io.Reader) (io.ReadCloser, error)
}
Compressor 패키지에서 공개하는 인터페이스다.
Example ¶
package main
import (
"bytes"
"fmt"
"github.com/bluetape4k/bluetape-go/compression"
)
func main() {
compressor := compression.Default()
payload := []byte("bluetape-go compression payload")
compressed, err := compressor.Compress(payload)
if err != nil {
return
}
decompressed, err := compressor.Decompress(compressed)
if err != nil {
return
}
fmt.Println(compressor.Name())
fmt.Println(bytes.Equal(payload, decompressed))
}
Output: zstd true
func All ¶
func All() []Compressor
All 등록된 모든 compressor를 반환한다.
Example ¶
package main
import (
"fmt"
"github.com/bluetape4k/bluetape-go/compression"
)
func main() {
for _, compressor := range compression.All() {
fmt.Println(compressor.Name())
}
}
Output: gzip zlib deflate zstd lz4 snappy
func DeflateLevel ¶
func DeflateLevel(level int) Compressor
DeflateLevel 지정한 압축 level을 사용하는 compressor를 생성한다.
매개변수:
- level: DeflateLevel에 전달되는 값이다. 허용 범위와 nil 처리 방식은 구현 검증을 따른다.
func GzipLevel ¶
func GzipLevel(level int) Compressor
GzipLevel 지정한 압축 level을 사용하는 compressor를 생성한다.
매개변수:
- level: GzipLevel에 전달되는 값이다. 허용 범위와 nil 처리 방식은 구현 검증을 따른다.
func ZlibLevel ¶
func ZlibLevel(level int) Compressor
ZlibLevel 지정한 압축 level을 사용하는 compressor를 생성한다.
매개변수:
- level: ZlibLevel에 전달되는 값이다. 허용 범위와 nil 처리 방식은 구현 검증을 따른다.
func ZstdLevel ¶
func ZstdLevel(level zstd.EncoderLevel) Compressor
ZstdLevel 지정한 압축 level을 사용하는 compressor를 생성한다.
매개변수:
- level: ZstdLevel에 전달되는 값이다. 허용 범위와 nil 처리 방식은 구현 검증을 따른다.
Click to show internal directories.
Click to hide internal directories.
