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
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
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
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 ()