githubEdit

Dependencies

The TEN framework utilizes several third-party libraries. Some are used specifically for testing, while others are integrated into the TEN runtime. Below is a description of these libraries, along with any necessary modifications required for their use within the TEN framework.

Google gn

Instance ID

OS
Arch
Instance ID

Linux

x64

BzX0zkfwFeUn9MaDVqm6FugmTIy-hFpgNUx43O1fN00C

Linux

arm64

rT_12w1Iv6ug8CJ4j0VQekA0qTDq6CwoAqGWasIKFcEC

Win

x64

1QlqF0FPVt82ba5f48HxHpv5xPqOmyaThoR3TicuJ8QC

Download directly from Google GN webpagearrow-up-right.

Commit ID

OS
Arch
Commit ID

Mac

universal

18602f6cf1168cf78302024043edc02e8bad2ffb

Clone and build from the Gn repositoryarrow-up-right.

Google ninja

Version: 1.12.1

Download directly from Ninja release pagearrow-up-right.

yyjson

Version: 0.10.0

MIT licensearrow-up-right

This is used in the TEN framework core to parse and generate JSON data. Please refer to third_party/yyjson for details.

libuv

Version: 1.50.0

MIT licensearrow-up-right

This is one of the event loop libraries used in the TEN runtime. Please refer to third_party/libuv for details.

msgpack-c

Version: 6.1.0

Boost Software License, Version 1.0arrow-up-right

A MessagePack library for C. Please refer to third_party/msgpack for details.

libwebsockets

Version: 4.3.2

MIT licensearrow-up-right

Canonical libwebsockets.org networking library. Please refer to third_party/libwebsockets for details.

Apply the following patch.

Fix for linking mbedtls on Windows

Apply the following patch if the CMake version is higher than 3.24, as find_package supports the GLOBAL keyword since 3.24.

And remove #define USING_SHARED_MBEDTLS in third_party/libwebsockets/cmake/lws_config.h.in.

curl

Version: 8.1.2

MIT-like licensearrow-up-right

A command-line tool and library for transferring data with URL syntax, supporting DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET, and TFTP. libcurl offers a myriad of powerful features.

Please refer to third_party/curl for details.

Patches for curl

Patch lib/CMakeLists.txt, to change the shared library name from _imp.lib to .lib.

Export Curl_ws_done in lib/ws.h, because this function needs to be called to prevent memory leaks.

clingo

Version: 5.6.2

MIT licensearrow-up-right

A grounder and solver for logic programs.

Please refer to third_party/clingo for details.

FFmpeg

Version: 6.0

GPL or LGPL licensearrow-up-right

The FFmpeg codebase is mainly LGPL-licensed with optional components licensed under GPL. Please refer to the LICENSE file for detailed information.

Used in ffmpeg extensions, primarily for testing purposes. Please refer to third_party/ffmpeg for details.

libbacktrace

Version: 1.0

BSD licensearrow-up-right

A C library that may be linked into a C/C++ program to produce symbolic backtraces.

⚠️ Note: We have significantly modified libbacktrace to conform to the naming conventions and folder structure of the TEN framework. Please refer to core/src/ten_utils/backtrace for details.

uthash

Version: 2.3.0

BSD licensearrow-up-right

C macros for hash tables and more.

⚠️ Note: We have significantly modified uthash to conform to the naming conventions and folder structure of the TEN framework. Please refer to the files under core/include/ten_utils/container that have uthash mentioned in the file headers.

uuid4

MIT licensearrow-up-rightWTFPLv2 licensearrow-up-right

UUID v4 generation in C.

⚠️ Note: We have significantly modified uuid4 to conform to the naming conventions and folder structure of the TEN framework. Please refer to core/src/ten_utils/lib/sys/general/uuid.c for details.

zf_log

MIT licensearrow-up-right

Core logging library for C/ObjC/C++.

⚠️ Note: We have significantly modified zf_log to conform to the naming conventions and folder structure of the TEN framework. Please refer to core/src/ten_utils/log for details.

Last updated