5 // Compression is intterface
6 type Compression interface {
7 CompressBytes(data []byte) []byte
8 DecompressBytes(data []byte) ([]byte, error)
12 SnappyBackendStr = "snappy" // legacy, defaults to SnappyBackendStr.
15 type compressionCreator func() Compression
17 var backends = map[string]compressionCreator{}
19 func registerCompressionCreator(backend string, creator compressionCreator, force bool) {
20 _, ok := backends[backend]
24 backends[backend] = creator
27 func NewCompression(backend string) Compression {
28 compression, ok := backends[backend]
30 panic(fmt.Sprintf("Cannot find compression algorithm:[%s]", backend))