À propos du projet

TDLib (bibliothèque de base de données Telegram) est une bibliothèque multiplateforme pour créer des clients Telegram, utilisable depuis presque tout langage de programmation. Caractéristiques clés décrites dans le README : - Multiplateforme : Android, iOS, Windows, macOS, Linux, FreeBSD, OpenBSD, NetBSD, illumos, Windows Phone, WebAssembly, watchOS, tvOS, visionOS, Tizen et Cygwin, avec d'autres systèmes *nix attendus pour fonctionner. - Multilingue : utilisable depuis tout langage capable d'appeler des fonctions C ; des liaisons natives Java (JNI) et .NET (C++/CLI et C++/CX) sont incluses. - Gère les détails d'implémentation réseau, le chiffrement et le stockage local des données. - Entièrement asynchrone : les requêtes ne se bloquent pas mutuellement ; les réponses sont livrées lorsqu'elles sont disponibles. - Ordre de mise à jour cohérent, stabilité sur connexions lentes ou peu fiables, et chiffrement local des données avec une clé fournie par l'utilisateur. - Méthodes API et interfaces publiques entièrement documentées. Interfaces : - Interface JSON (Td::TdJson / Td::TdJsonStatic) avec une interface C simple, recommandée pour la plupart des cas d'utilisation ; suit le versionnage sémantique pour la couche JSON. - Interface C++ (Td::TdStatic) via ClientManager et Client. - Interface Java activée avec -DTD_ENABLE_JNI=ON. - Interface .NET activée avec -DTD_ENABLE_DOTNET=ON ou -DTD_ENABLE_DOTNET=CX. Construction : - Dépendances : compilateur C++17 (Clang 5.0+, GCC 7.0+, MSVC 19.1+, Intel C++ 19+), OpenSSL, zlib, gperf (construction uniquement), CMake 3.10+ (construction uniquement), PHP optionnel pour la génération de documentation. - Un générateur d'instructions de construction est fourni ; une construction CMake typique utilise la configuration Release. Un script SplitSource.php peut réduire l'utilisation mémoire sur les appareils à faible mémoire. - Intégration CMake via add_subdirectory ou find_package(Td ...). Documentation et exemples : didacticiel de démarrage, répertoires d'exemples pour C++, Java, C#, UWP et Python (tdjson_example.py), le schéma td_api.tl, et documentation API HTML générée. Licence : licence logicielle Boost.