xpra icon
Bug tracker and wiki

This bug tracker and wiki are being discontinued
please use https://github.com/Xpra-org/xpra instead.

Changes between Initial Version and Version 1 of PacketEncoding

10/16/13 06:15:00 (8 years ago)
Antoine Martin

add packet encoding info page with lz4 links, etc


  • PacketEncoding

    v1 v1  
     1= Packet Encoding and Compression =
     3== Bencode vs Rencode ==
     4Each packet exchanged between the client and server is encoded using one of those two stream encoders:
     5* The old [http://xpra.org/trac/browser/xpra/trunk/src/xpra/net/bencode.py bencode] mode (see [http://en.wikipedia.org/wiki/Bencode Bencode on wikipedia]): a modified bencoder which supports non string keys in dictionaries, and support for unicode
     6* The newer/faster [http://xpra.org/trac/browser/xpra/trunk/src/xpra/net/rencode rencode] mode, based on [https://code.google.com/p/rencode/ this version] with minor tweaks/fixes
     7This allows various languages to implement the xpra protocol, specifying which encoder they want to use (bencode is more widely available than rencode).
     9== Pixels and Icons ==
     11'''Note''': all window pixels, icons and cursors are sent using dedicated [/wiki/Encodings picture encodings] and bypass the stream encoder completely (for speed).
     13== Compression ==
     14The compression level can be specified via the command line ("{{{-z LEVEL}}}" or "{{{--compress=LEVEL}}}").
     15Here is what the {{{LEVEL}}} does:
     16* {{{0}}} means no compression at all and is useful when bandwidth is no issue but latency is
     17* {{{1}}} is the best trade-off and will compress everything but without making too much of an effort
     18* values of 2 and above increase the compression (CPU usage and latency will increase) and should rarely be needed
     20=== lz4 vs zcompress ==
     21As of version {{{0.11.0}}}, xpra supports [https://pypi.python.org/pypi/lz4 lz4] compression and will use it instead of the default [http://docs.python.org/2/library/zlib.html zlib] when {{{LEVEL}}} is set to 1 and both ends support the compression mode.