Об этом проекте
TDLib (Telegram Database library) — это кроссплатформенная библиотека для создания клиентов Telegram, которую можно использовать практически из любого языка программирования.
Ключевые характеристики, описанные в README:
- Кроссплатформенность: Android, iOS, Windows, macOS, Linux, FreeBSD, OpenBSD, NetBSD, illumos, Windows Phone, WebAssembly, watchOS, tvOS, visionOS, Tizen и Cygwin, а также ожидается работа в других *nix-системах.
- Многоязычность: может использоваться из любого языка, способного вызывать функции C; включены нативные привязки для Java (JNI) и .NET (C++/CLI и C++/CX).
- Обрабатывает детали сетевого взаимодействия, шифрование и локальное хранение данных.
- Полностью асинхронный: запросы не блокируют друг друга; ответы доставляются по мере готовности.
- Согласованный порядок обновлений, стабильность при медленных или ненадёжных соединениях и локальное шифрование данных с ключом, предоставленным пользователем.
- Полностью документированные методы API и публичные интерфейсы.
Интерфейсы:
- JSON-интерфейс (Td::TdJson / Td::TdJsonStatic) с простым C-интерфейсом, рекомендуемый для большинства случаев использования; для JSON-слоя применяется семантическое версионирование.
- C++-интерфейс (Td::TdStatic) через ClientManager и Client.
- Java-интерфейс включается с помощью -DTD_ENABLE_JNI=ON.
- .NET-интерфейс включается с помощью -DTD_ENABLE_DOTNET=ON или -DTD_ENABLE_DOTNET=CX.
Сборка:
- Зависимости: компилятор C++17 (Clang 5.0+, GCC 7.0+, MSVC 19.1+, Intel C++ 19+), OpenSSL, zlib, gperf (только для сборки), CMake 3.10+ (только для сборки), опционально PHP для генерации документации.
- Предоставляется генератор инструкций по сборке; типичная сборка CMake использует конфигурацию Release. Скрипт SplitSource.php позволяет снизить потребление памяти на устройствах с небольшим объёмом памяти.
- Интеграция с CMake через add_subdirectory или find_package(Td ...).
Документация и примеры: учебное руководство Getting Started, каталоги примеров для C++, Java, C#, UWP и Python (tdjson_example.py), схема td_api.tl и сгенерированная HTML-документация API.
Лицензия: Boost Software License.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.