compress

package
v0.0.0-...-2de8dec Latest Latest
Warning

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

Go to latest
Published: Jan 12, 2023 License: BSD-2-Clause Imports: 11 Imported by: 1

Documentation

Overview

Package compress implements XEP-0138: Stream Compression and XEP-0229: Stream Compression with LZW.

Be advised: stream compression has many of the same security considerations as TLS compression (see RFC3749 §6) and may be difficult to implement safely without special expertise.

Index

Constants

View Source
const (
	NSFeatures = "http://jabber.org/features/compress"
	NSProtocol = "http://jabber.org/protocol/compress"
)

Namespaces used by stream compression.

Variables

This section is empty.

Functions

func New

func New(methods ...Method) xmpp.StreamFeature

New returns a new xmpp.StreamFeature that can be used to negotiate stream compression. The returned stream feature always supports ZLIB compression; other compression methods are optional.

Types

type Method

type Method struct {
	Name    string
	Wrapper func(io.ReadWriter) (io.ReadWriter, error)
}

Method is a stream compression method. Custom methods may be defined, but generally speaking the only supported methods will be those with names defined in the "Stream Compression Methods Registry" maintained by the XSF Editor: https://xmpp.org/registrar/compress.html

Since ZLIB is always supported, a Method is not defined for it.

var (
	// LZW implements stream compression using the Lempel-Ziv-Welch (DCLZ)
	// compressed data format.
	LZW Method = lzwMethod
)

Jump to

Keyboard shortcuts

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