| C | C++ | Kotlin | Javascript | SQLite3 | HTML5 | CSS | SCSS | PHP |
|---|---|---|---|---|---|---|---|---|
| popen_wdt lib | main C++ code | Android socket client app | Webpage | Database support | Webpage | Webpage | Webpage | Webpage |
- Abseil C++ common library - Used for logging - Link
- C++ HTTP library (cpp-httplib) - Used for website server support - Link
- CppTrace - C++ Backtrace Library - Link
- cryptopp - Used for hashing and encryption - Link
- CURL - Used for HTTP requests - Link
- dlfcn Win32 support - Used for runtime loader for commands (Windows only) - Link
- fmt - Format library (header-only mode) - Link
- Fruit - C++ Dependency Injection Framework - Link
- gRPC - C++ gRPC implementation for remote services - Link
- GTest - Test framework for C++ codes - Link
- libxml2 - Used for XML parsing in StringResLoader - Link
- llama.cpp - Used for local LLM support - Link
- Lua - Lua language integration (for command modules) - Link
- nlohmann_json - Used for JSON parsing and serialization - Link
- OpenCV - Used for image/video processing - Link
- Protobuf - Used for alternative database backend and gRPC - Link
- Sol2 - C++ and Lua integration - Link
- SQLite3 - Used for one database backend, for whitelist/blacklist saving support
- stduuid - Used for generating UUIDs - Link
- TgBot-cpp - Core library for being a Telegram bot - Link
- libpng - PNG image format support
- libjpeg-turbo - JPEG image format support
- libwebp - WebP image format support
- Corrosion - Rust and CMake integration - Link
- Git - Used for build information generation (commit ID, message, origin)
- Rust - Used for some command modules and the builder-rs gRPC server - Link
- There is no goal - I will just add stuff whichever I could and learn those while writing code for it
- See TODO file, though its not really updated
- TGBOTCPP_BUILD_TESTS: Build the test suite (default: OFF)
- TGBOTCPP_RUST_MODULES: Enable and build command modules written with Rust language (default: OFF)
- TGBOTCPP_LUA_MODULES: Enable support for command module written with Lua language (default: ON)
- TGBOTCPP_ENABLE_LOCAL_LLM: Enable support for local LLM framework (Requires compatible hardware, e.g. NVIDIA GPU) (default: OFF)
- TGBOTCPP_CROSS_COMPILING: Whether we are cross-compiling, can be auto detected or be manually set
- TGBOTCPP_AUTODETECT_CROSS_COMPILING: Auto detect TGBOTCPP_CROSS_COMPILING via CMAKE_HOST_CMAKE_SYSTEM_PROCESSOR and CMAKE_SYSTEM_PROCESSOR
- TGBOTCPP_CROSS_COMPILE_INSTALL_PATH: Path that the package is installed to (i.e. CMAKE_INSTALL_PREFIX). Default: /usr/bin (assuming debian systems)
- TGBOTCPP_CROSS_COMPILE_CC: C Compiler that is present on remote system, can be omitted - then the following backend is disabled.
- TGBOTCPP_CROSS_COMPILE_CXX: C++ Compiler that is present on remote system, can be omitted - then the following backend is disabled.
- TGBOTCPP_CROSS_COMPILE_PYTHON: Python interpreter that is present on remote system, can be omitted - then the following backend is disabled.
- Token: Telegram bot token
- LogFile: Log file path
- GitHubToken: GitHub token (Used for private repo access)
- OptionalComponents: Enable optional components. Comma-separated list of components to enable. Supported components: "webserver", "datacollector"
- BuildBuddyApiKey: BuildBuddy API key for Android RBE
- FilePath: Database file path
- Type: Database type (sqlite or protobuf)
- BackendType: LLM backend type (local, localnet)
- ModelLocation: LLM location (file path or network address)
- AuthKey: LLM authentication key (if required)
- PrimarySocketUrl: Primary socket URL that is binded to. e.g. 192.168.0.X:239 or unix://path/to/file
- SecondarySocketUrl: Secondary socket URL
- LoggingSocketUrl: Logging socket URL
- ApiServer: Custom Telegram API server URL
- ApiServerFilePathRemovePrefix: Prefix to remove from Telegram #getFile file paths when using a custom API server
- ApiServerFilePathAppendPrefix: Prefix to append to Telegram #getFile file paths when using a custom API server
- BuilderRSServer: Builder-RS gRPC server address