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
Linux
x64
BzX0zkfwFeUn9MaDVqm6FugmTIy-hFpgNUx43O1fN00C
Linux
arm64
rT_12w1Iv6ug8CJ4j0VQekA0qTDq6CwoAqGWasIKFcEC
Win
x64
1QlqF0FPVt82ba5f48HxHpv5xPqOmyaThoR3TicuJ8QC
Download directly from Google GN webpage.
Commit ID
Mac
universal
18602f6cf1168cf78302024043edc02e8bad2ffb
Clone and build from the Gn repository.
Google ninja
Version: 1.12.1
Download directly from Ninja release page.
yyjson
Version: 0.10.0
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
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.0
A MessagePack library for C. Please refer to third_party/msgpack for details.
libwebsockets
Version: 4.3.2
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
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
A grounder and solver for logic programs.
Please refer to third_party/clingo for details.
FFmpeg
Version: 6.0
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
A C library that may be linked into a C/C++ program to produce symbolic backtraces.
⚠️ Note: We have significantly modified
libbacktraceto conform to the naming conventions and folder structure of the TEN framework. Please refer tocore/src/ten_utils/backtracefor details.
uthash
Version: 2.3.0
C macros for hash tables and more.
⚠️ Note: We have significantly modified
uthashto conform to the naming conventions and folder structure of the TEN framework. Please refer to the files undercore/include/ten_utils/containerthat haveuthashmentioned in the file headers.
uuid4
UUID v4 generation in C.
⚠️ Note: We have significantly modified
uuid4to conform to the naming conventions and folder structure of the TEN framework. Please refer tocore/src/ten_utils/lib/sys/general/uuid.cfor details.
zf_log
Core logging library for C/ObjC/C++.
⚠️ Note: We have significantly modified
zf_logto conform to the naming conventions and folder structure of the TEN framework. Please refer tocore/src/ten_utils/logfor details.
Last updated