compression.go 804 B

12345678910111213141516171819202122232425262728293031323334353637
  1. package kafka
  2. import (
  3. "errors"
  4. "github.com/segmentio/kafka-go/compress"
  5. )
  6. type Compression = compress.Compression
  7. const (
  8. Gzip Compression = compress.Gzip
  9. Snappy Compression = compress.Snappy
  10. Lz4 Compression = compress.Lz4
  11. Zstd Compression = compress.Zstd
  12. )
  13. type CompressionCodec = compress.Codec
  14. // TODO: this file should probably go away once the internals of the package
  15. // have moved to use the protocol package.
  16. const (
  17. compressionCodecMask = 0x07
  18. )
  19. var (
  20. errUnknownCodec = errors.New("the compression code is invalid or its codec has not been imported")
  21. )
  22. // resolveCodec looks up a codec by Code()
  23. func resolveCodec(code int8) (CompressionCodec, error) {
  24. codec := compress.Compression(code).Codec()
  25. if codec == nil {
  26. return nil, errUnknownCodec
  27. }
  28. return codec, nil
  29. }