Об этом проекте

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.