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
          )