Go API Documentation

github.com/caddyserver/caddy/v2/modules/caddyhttp/encode/zstd

No package summary is available.

Package

Files: 2. Third party imports: 1. Imports from organisation: 0. Tests: 0. Benchmarks: 0.

Vars

var (
	_	encode.Encoding		= (*Zstd)(nil)
	_	caddyfile.Unmarshaler	= (*Zstd)(nil)
	_	caddy.Provisioner	= (*Zstd)(nil)
)

Types

Zstd

Zstd can create Zstandard encoders.

type Zstd struct {
	// The compression level. Accepted values: fastest, better, best, default.
	Level	string	`json:"level,omitempty"`

	// Compression level refer to type constants value from zstd.SpeedFastest to zstd.SpeedBestCompression
	level	zstd.EncoderLevel
}

ZstdPrecompressed

ZstdPrecompressed provides the file extension for files precompressed with zstandard encoding.

type ZstdPrecompressed struct {
	Zstd
}

Functions

func (*Zstd) Provision

Provision provisions z's configuration.

func (z *Zstd) Provision(ctx caddy.Context) error {
	if z.Level == "" {
		z.Level = zstd.SpeedDefault.String()
	}
	var ok bool
	if ok, z.level = zstd.EncoderLevelFromString(z.Level); !ok {
		return fmt.Errorf("unexpected compression level, use one of '%s', '%s', '%s', '%s'",
			zstd.SpeedFastest,
			zstd.SpeedDefault,
			zstd.SpeedBetterCompression,
			zstd.SpeedBestCompression,
		)
	}
	return nil
}

Cognitive complexity: 4, Cyclomatic complexity: 3

Uses: fmt.Errorf, zstd.EncoderLevelFromString, zstd.SpeedBestCompression, zstd.SpeedBetterCompression, zstd.SpeedDefault, zstd.SpeedFastest.

func (*Zstd) UnmarshalCaddyfile

UnmarshalCaddyfile sets up the handler from Caddyfile tokens.

func (z *Zstd) UnmarshalCaddyfile(d *caddyfile.Dispenser) error {
	d.Next()	// consume option name
	if !d.NextArg() {
		return nil
	}
	levelStr := d.Val()
	if ok, _ := zstd.EncoderLevelFromString(levelStr); !ok {
		return d.Errf("unexpected compression level, use one of '%s', '%s', '%s', '%s'",
			zstd.SpeedFastest,
			zstd.SpeedBetterCompression,
			zstd.SpeedBestCompression,
			zstd.SpeedDefault,
		)
	}
	z.Level = levelStr
	return nil
}

Cognitive complexity: 4, Cyclomatic complexity: 3

Uses: zstd.EncoderLevelFromString, zstd.SpeedBestCompression, zstd.SpeedBetterCompression, zstd.SpeedDefault, zstd.SpeedFastest.

func (Zstd) AcceptEncoding

AcceptEncoding returns the name of the encoding as used in the Accept-Encoding request headers.

func (Zstd) AcceptEncoding() string	{ return "zstd" }

Cognitive complexity: 0, Cyclomatic complexity: 1

func (Zstd) CaddyModule

CaddyModule returns the Caddy module information.

func (Zstd) CaddyModule() caddy.ModuleInfo {
	return caddy.ModuleInfo{
		ID:	"http.encoders.zstd",
		New:	func() caddy.Module { return new(Zstd) },
	}
}

Cognitive complexity: 2, Cyclomatic complexity: 1

func (Zstd) NewEncoder

NewEncoder returns a new Zstandard writer.

func (z Zstd) NewEncoder() encode.Encoder {
	// The default of 8MB for the window is
	// too large for many clients, so we limit
	// it to 128K to lighten their load.
	writer, _ := zstd.NewWriter(
		nil,
		zstd.WithWindowSize(128<<10),
		zstd.WithEncoderConcurrency(1),
		zstd.WithZeroFrames(true),
		zstd.WithEncoderLevel(z.level),
	)
	return writer
}

Cognitive complexity: 0, Cyclomatic complexity: 1

Uses: zstd.NewWriter, zstd.WithEncoderConcurrency, zstd.WithEncoderLevel, zstd.WithWindowSize, zstd.WithZeroFrames.

func (ZstdPrecompressed) Suffix

Suffix returns the filename suffix of precompressed files.

func (ZstdPrecompressed) Suffix() string	{ return ".zst" }

Cognitive complexity: 0, Cyclomatic complexity: 1

Private functions

func init

init ()