Sobre o projeto

TDLib (biblioteca de banco de dados Telegram) é uma biblioteca multiplataforma para criar clientes Telegram, utilizável de quase qualquer linguagem de programação. Características principais descritas no README: - Multiplataforma: Android, iOS, Windows, macOS, Linux, FreeBSD, OpenBSD, NetBSD, illumos, Windows Phone, WebAssembly, watchOS, tvOS, visionOS, Tizen e Cygwin, com expectativa de funcionamento em outros sistemas *nix. - Multilinguagem: utilizável de qualquer linguagem capaz de chamar funções C; inclusões nativas Java (JNI) e .NET (C++/CLI e C++/CX) estão incluídas. - Lida com detalhes de implementação de rede, criptografia e armazenamento local de dados. - Totalmente assíncrona: solicitações não bloqueiam umas às outras; respostas são entregues quando disponíveis. - Ordenação consistente de atualizações, estabilidade em conexões lentas ou não confiáveis, e criptografia local de dados com chave fornecida pelo usuário. - Métodos de API e interfaces públicas totalmente documentados. Interfaces: - Interface JSON (Td::TdJson / Td::TdJsonStatic) com interface C simples, recomendada para a maioria dos casos de uso; segue versionamento semântico para a camada JSON. - Interface C++ (Td::TdStatic) via ClientManager e Client. - Interface Java habilitada com -DTD_ENABLE_JNI=ON. - Interface .NET habilitada com -DTD_ENABLE_DOTNET=ON ou -DTD_ENABLE_DOTNET=CX. Construção: - Dependências: compilador C++17 (Clang 5.0+, GCC 7.0+, MSVC 19.1+, Intel C++ 19+), OpenSSL, zlib, gperf (somente construção), CMake 3.10+ (somente construção), PHP opcional para geração de documentação. - Um gerador de instruções de construção é fornecido; uma construção CMake típica usa configuração Release. Um script SplitSource.php pode reduzir o uso de memória em dispositivos com pouca memória. - Integração CMake via add_subdirectory ou find_package(Td ...). Documentação e exemplos: tutorial de Introdução, diretórios de exemplo para C++, Java, C#, UWP e Python (tdjson_example.py), esquema td_api.tl, e documentação HTML gerada da API. Licença: Boost Software License.