9 Optional dependencies
Tulir Asokan edited this page 2020-12-03 14:50:46 +02:00

Usage

Production setup

The pip install URLs in the production setup guide include [all] at the end by default, which means all optional dependencies will be installed by default.

If you only want specific optional dependencies, replace the all with a comma-separated list of the pip extra names (e.g. postgres,speedups).

If you don't want any optional dependencies, just remove the [all].

Development setup

To install all optional dependencies, use pip install --upgrade -r optional-requirements.txt

To install specific optional dependencies, install the packages listed "Required packages" from the table of optional dependencies below.

Docker

The docker image contains all optional dependencies. Currently they can't be easily disabled.

List of optional dependencies

Required packages in parentheses indicate a large dependency of the other packages.

pip extra name Required packages Description
speedups cryptg
cchardet
aiodns
brotli
Speed up some things, e.g. by using native crypto code.
webp_convert Pillow WebP <-> PNG conversion for stickers. Also requires libwebp.
hq_thumbnails moviepy (numpy) High quality thumbnails for Telegram->Matrix gifs and videos. If you want to use an existing ffmpeg installation for moviepy, set the FFMPEG_BINARY environment variable before starting the bridge. If it's not set, a ffmpeg binary will be downloaded automatically.
qr_login Pillow
qrcode
Telegram login by scanning a QR code from another device.
metrics prometheus_client Prometheus metrics.
postgres psycopg2 Postgres.
e2be asyncpg
python-olm
pycryptodome
unpaddedbase64
End-to-bridge encryption support. Also requires libolm 3.x (libolm-dev on Debian 11+ and Ubuntu 19.10+), python3-dev and a C compiler (build-essential in Debian)

† Also needs to be enabled in config