compression

package
v0.0.0-...-46646b9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 29, 2026 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CompressionLevel

type CompressionLevel int

CompressionLevel represents the compression level

const (
	CompressionLevelFast CompressionLevel = iota
	CompressionLevelDefault
	CompressionLevelBest
)

type CompressionManager

type CompressionManager struct {
	// contains filtered or unexported fields
}

CompressionManager manages multiple compressors

func NewCompressionManager

func NewCompressionManager() *CompressionManager

NewCompressionManager creates a new compression manager

func (*CompressionManager) Compress

func (cm *CompressionManager) Compress(ctx context.Context, data []byte, compressionType CompressionType) ([]byte, error)

Compress compresses data using the specified compression type

func (*CompressionManager) Decompress

func (cm *CompressionManager) Decompress(ctx context.Context, data []byte, compressionType CompressionType) ([]byte, error)

Decompress decompresses data using the specified compression type

func (*CompressionManager) GetAvailableTypes

func (cm *CompressionManager) GetAvailableTypes() []CompressionType

GetAvailableTypes returns all available compression types

func (*CompressionManager) GetCompressor

func (cm *CompressionManager) GetCompressor(compressionType CompressionType) (Compressor, error)

GetCompressor returns a compressor by type

func (*CompressionManager) RegisterCompressor

func (cm *CompressionManager) RegisterCompressor(compressor Compressor)

RegisterCompressor registers a new compressor

type CompressionType

type CompressionType string

CompressionType represents the type of compression

const (
	CompressionTypeNone CompressionType = "none"
	CompressionTypeGzip CompressionType = "gzip"
	CompressionTypeZlib CompressionType = "zlib"
)

type Compressor

type Compressor interface {
	Compress(ctx context.Context, data []byte) ([]byte, error)
	Decompress(ctx context.Context, data []byte) ([]byte, error)
	GetType() CompressionType
	GetLevel() CompressionLevel
}

Compressor interface defines compression operations

type GzipCompressor

type GzipCompressor struct {
	// contains filtered or unexported fields
}

GzipCompressor implements gzip compression

func NewGzipCompressor

func NewGzipCompressor(level CompressionLevel) *GzipCompressor

NewGzipCompressor creates a new gzip compressor

func (*GzipCompressor) Compress

func (gc *GzipCompressor) Compress(ctx context.Context, data []byte) ([]byte, error)

Compress compresses data using gzip

func (*GzipCompressor) Decompress

func (gc *GzipCompressor) Decompress(ctx context.Context, data []byte) ([]byte, error)

Decompress decompresses gzip data

func (*GzipCompressor) GetLevel

func (gc *GzipCompressor) GetLevel() CompressionLevel

GetLevel returns the compression level

func (*GzipCompressor) GetType

func (gc *GzipCompressor) GetType() CompressionType

GetType returns the compression type

type ZlibCompressor

type ZlibCompressor struct {
	// contains filtered or unexported fields
}

ZlibCompressor implements zlib compression

func NewZlibCompressor

func NewZlibCompressor(level CompressionLevel) *ZlibCompressor

NewZlibCompressor creates a new zlib compressor

func (*ZlibCompressor) Compress

func (zc *ZlibCompressor) Compress(ctx context.Context, data []byte) ([]byte, error)

Compress compresses data using zlib

func (*ZlibCompressor) Decompress

func (zc *ZlibCompressor) Decompress(ctx context.Context, data []byte) ([]byte, error)

Decompress decompresses zlib data

func (*ZlibCompressor) GetLevel

func (zc *ZlibCompressor) GetLevel() CompressionLevel

GetLevel returns the compression level

func (*ZlibCompressor) GetType

func (zc *ZlibCompressor) GetType() CompressionType

GetType returns the compression type

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL