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