# Dependencies

Most of these dependencies should be installed automatically when you install official packages.
Unless otherwise stated, the dependencies are all optional.

Core Dependencies
Those are required by almost every component. | Project | Source Download Link | Purpose | Client or Server | Notes | |———|———————-|———|——————|:——| |glib|https://ftp.gnome.org/pub/gnome/sources/glib/|low-level library|both|Required| |gtk|http://ftp.gnome.org/pub/gnome/sources/gtk+/|UI Toolkit|both|Required| |pyopengl|https://pypi.python.org/pypi/PyOpenGL and
https://pypi.python.org/pypi/PyOpenGL-accelerate|client OpenGL accelerated rendering|client| | |pycups|https://pypi.org/project/pycups/|Printing|both| |

Network Layer
See Network | Project | Source Download Link | Purpose | Client or Server | Notes | |———|———————-|———|——————|:——| |rencode|https://pypi.python.org/pypi/rencode/|packet encoding|both |Recommended| |pyyaml|https://pypi.python.org/pypi/PyYAML/|alternative packet encoder|both |optional (usually unused)| |lz4|https://github.com/lz4/lz4/releases|packet compression|both|Recommended| |python-lz4|https://github.com/python-lz4/python-lz4|python wrapper for lz4|both|Recommended| |python-cryptography|https://pypi.python.org/pypi/cryptography|Encryption|both|| |python-zeroconf|https://pypi.org/project/zeroconf/|Multicast DNS session publishing|server|| |python-netifaces|https://pypi.python.org/pypi/netifaces|Multicast DNS session publishing|server|| |dbus-python|https://dbus.freedesktop.org/releases/dbus-python/|desktop integration, server control interface|both|not applicable to MS Windows or Mac OSX| |openssl|https://www.openssl.org/source/|SSL|both|| |paramiko|https://pypi.org/project/paramiko/|ssh integration|both|| |sshpass|https://sourceforge.net/projects/sshpass/files/sshpass/|non-interactive SSH password authentication|usually client|| |brotli|https://github.com/google/brotli/releases|HTML client compression|r15540 |

Authentication
See authentication modules | Project | Source Download Link | Purpose | Client or Server | Notes | |———|———————-|———|——————|:——| |python-gssapi|https://pypi.org/project/gssapi/|GSSAPI|server|#1691| |python-kerberos|https://pypi.org/project/kerberos/|Kerberos|server|#1691| |python-ldap|https://pypi.org/project/python-ldap/|LDAP|server|#1691| |python-ldap3|https://pypi.org/project/ldap3/|LDAP v3|server|#1691| |pyu2f|https://pypi.org/project/pyu2f/|U2F|server|#1789|

Python modules

Project | Source Download Link | Notes
--- | --- | ---
python-ipaddress | https://pypi.org/project/ipaddress/ | unspecified: r11859
python-idna | https://pypi.org/project/idna/ | unspecified: r11860
python-decorator | https://pypi.org/project/decorator/ | required by gssapi: r18781
pytest-runner | https://pypi.org/project/pytest-runner/ | required by python-lz4: r17864
python-deprecation | https://pypi.org/project/deprecation/ | required by python-lz4: r17749
python-pkgconfig | https://pypi.org/project/pkgconfig/ | required by python-lz4: r17748
python-setuptools-scm | https://pypi.org/project/setuptools-scm/ | required by python-lz4: r15282
nose | https://pypi.org/project/nose/ | required by python-lz4: r8676
pyasn1 | https://pypi.org/project/pyasn1/ | unspecified: r5829
asn1crypto | https://pypi.org/project/asn1crypto/ | required by python-cryptography: r17856
python-packaging | https://pypi.org/project/packaging/ | required by python-cryptography: r15310
pyparsing | https://pypi.org/project/pyparsing/ | required by python-cryptography: r15310
cffi | https://pypi.org/project/cffi/ | required by python-cryptography: r11633
six | https://pypi.org/project/six/ | required by python-cryptography: r11640
enum-compat | https://pypi.org/project/enum-compat/ | required by zeroconf: r20441
enum34 | https://pypi.org/project/enum34/ | required by enum-compat: r15397
setuptools | https://pypi.org/project/setuptools/ | unspecified: r5829
pycparser | https://pypi.org/project/pycparser/ | required by cffi: r11634
pynacl | https://pypi.org/project/PyNaCl/ | crypto library used by paramiko: r19967
bcrypt | https://pypi.org/project/bcrypt/ | crypto library used by paramiko: r19965

Encodings
See picture encodings | Project | Source Download Link | Purpose | Client or Server | |———|———————-|———|——————| |x264|ftp://ftp.videolan.org/pub/x264/snapshots/|h264 encoding|server| |ffmpeg|http://ffmpeg.org/releases/|h264, h265, vp8 and vp9 decoding|client| |vpx|http://downloads.webmproject.org/releases/webm/index.html|vp8 and vp9 codec|both| |webp|http://downloads.webmproject.org/releases/webp/index.html|webp codec|both| |libpng|ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng16/|png encoding|both| |libjpeg-turbo|https://sourceforge.net/projects/libjpeg-turbo/files/|jpeg encoding|both| |python-pillow|https://pypi.python.org/pypi/Pillow|png,jpeg,webp encoding and decoding, format conversion - Required|both| |opencv|https://opencv.org/releases/|Webcam capture]|client| |libyuv|https://chromium.googlesource.com/libyuv/libyuv/|Colourspace Conversion|both| |pycuda|https://pypi.python.org/pypi/pycuda|NVENC|server| |cuda|https://developer.nvidia.com/cuda-toolkit|NVENC|server| |pyNVML|https://pypi.python.org/pypi/nvidia-ml-py/|NVENC|server|

Audio
See audio forwarding | Project | Source Download Link | Purpose | |———|———————-|———| |gstreamer|http://gstreamer.freedesktop.org/src/|audio framework| |Ogg|http://downloads.xiph.org/releases/ogg/|ogg container format| |opus|http://downloads.xiph.org/releases/opus/|opus codec| |Flac|http://downloads.xiph.org/releases/flac/|flac codec| |Speex|http://downloads.xiph.org/releases/speex/|speex codec| |Vorbis|http://downloads.xiph.org/releases/vorbis/|vorbis codec| |wavpack|http://www.wavpack.com/downloads.html|wavpack codec| |faac|http://faac.sourceforge.net/|aac encoder| |faad|http://faac.sourceforge.net/|aac decoder| |lame|http://sourceforge.net/projects/lame/files/lame/|MP3 encoder| |TwoLame|http://sourceforge.net/projects/twolame/files/twolame/|MP3 encoder|