Dependencies

Build dependencies

dependency

comment

gcc >= 4.1 or clang >= 3.4

required

python >= 2.6

required

scons

required

ragel

required

gengetopt

required, unless you disable building command-line tools

pkg-config

optional, used for better detection of system libraries

config.guess

optional, used for better detection of system type
(may be provided by autotools, automake, or libtool)
libtool, intltool, autoconf, automake
make, cmake, meson, ninja
optional, used to build dependencies automatically
using --build-3rdparty option

Vendored dependencies

dependency

version

comment

dr_wav

0.13.14

single-header library

hedley

15

single-header library

Runtime dependencies

dependency

version

comment

libatomic_ops

>= 7.6.0

only required on pre-C11 compilers

libunwind

>= 1.2.1

optional, used to print backtraces

libuv

>= 1.5.0 (recommended >= 1.35.0)

required

OpenFEC

>= 1.4.2 (recommended to use our fork)

optional, used for FECFRAME support

OpenSSL

>= 1.1.1

optional, used for SRTP and DTLS support and CSPRNG

PulseAudio

>= 5.0

optional, used for PulseAudio I/O

SoX

>= 14.4.0

optional, used for audio I/O

libsndfile

>= 1.0.26

optional, used for audio I/O

SpeexDSP

>= 1.2beta3

optional, used for fast resampling

Note

For OpenFEC, it’s highly recommended to use our fork or manually apply patches from it. The fork is automatically used when using --build-3rdparty=openfec option. It contains several critical fixes that are not available in the upstream.

Note

libuv versions before 1.5.0 may have problems on 64-bit ARMs.

Note

SpeexDSP (libspeexdsp) below 1.2rc3 was part of Speex (libspeex) package.

Development dependencies

dependency

comment

CppUTest >= 4.0

needed to build tests

Google Benchmark >= 1.5.5

needed to build benchmarks

clang-format >= 10

needed to format code with scons fmt

doxygen >= 1.6, graphviz

needed to build doxygen and sphinx documentation

sphinx >= 5, breathe

needed to build sphinx documentation

Note

Different versions of clang-format may format the code differently, thus we restrict the range of allowed versions. If you use another version, CI checks may fail.