TDLib (Telegram Database library) est une bibliothèque multiplateforme permettant de créer des clients Telegram. Il peut être facilement utilisé à partir de presque tous les langages de programmation.
Caractéristiques
Exemples et documentation
Dépendances
Bâtiment
Utilisation dans les projets CMake C++
Utilisation dans des projets Java
Utilisation dans les projets .NET
Utilisation avec d'autres langages de programmation
Licence
TDLib
présente de nombreux avantages. TDLib
est notamment :
Multiplateforme : TDLib
peut être utilisé sur Android, iOS, Windows, macOS, Linux, FreeBSD, OpenBSD, NetBSD, illumos, Windows Phone, WebAssembly, watchOS, tvOS, visionOS, Tizen, Cygwin. Il devrait également fonctionner sur d'autres systèmes * nix avec ou sans un minimum d'effort.
Multilingue : TDLib
peut être facilement utilisé avec n'importe quel langage de programmation capable d'exécuter des fonctions C. De plus, il dispose déjà de liaisons Java natives (utilisant JNI
) et de liaisons .NET (utilisant C++/CLI
et C++/CX
).
Facile à utiliser : TDLib
s'occupe de tous les détails d'implémentation du réseau, du cryptage et du stockage local des données.
Haute performance : dans l'API Telegram Bot, chaque instance TDLib
gère plus de 25 000 robots actifs simultanément.
Bien documenté : toutes les méthodes API TDLib
et interfaces publiques sont entièrement documentées.
Cohérent : TDLib
garantit que toutes les mises à jour sont livrées dans le bon ordre.
Fiable : TDLib
reste stable sur des connexions Internet lentes et peu fiables.
Sécurisé : toutes les données locales sont cryptées à l'aide d'une clé de cryptage fournie par l'utilisateur.
Entièrement asynchrone : les requêtes vers TDLib
ne se bloquent pas entre elles ni quoi que ce soit d'autre, les réponses sont envoyées lorsqu'elles sont disponibles.
Consultez notre didacticiel de mise en route pour une description des concepts de base de TDLib.
Jetez un œil à nos exemples.
Consultez un générateur d'instructions de construction TDLib pour des instructions détaillées sur la façon de créer TDLib.
Voir la description de nos interfaces JSON, C++, Java et .NET.
Consultez le schéma td_api.tl ou la documentation HTML générée automatiquement pour une liste de toutes les méthodes et classes TDLib
disponibles.
TDLib
dépend de :
Compilateur compatible C++14 (Clang 3.4+, GCC 4.9+, MSVC 19.0+ (Visual Studio 2015+), Intel C++ Compiler 17+)
OuvertSSL
zlib
gperf (build uniquement)
CMake (3.0.2+, build uniquement)
PHP (facultatif, pour la génération de documentation)
Le moyen le plus simple de construire TDLib
est d'utiliser notre générateur d'instructions de construction TDLib. Il vous suffit de choisir votre langage de programmation et votre système d'exploitation cible pour recevoir des instructions de construction complètes.
En général, vous devez installer toutes les dépendances TDLib
, entrer dans le répertoire contenant les sources TDLib
et les compiler à l'aide de CMake :
mkdir build cd build cmake -DCMAKE_BUILD_TYPE=Release .. cmake --build .
Pour créer TDLib
sur des appareils à faible mémoire, vous pouvez exécuter le script SplitSource.php avant de compiler le code source principal TDLib
et compiler uniquement les cibles nécessaires :
mkdir build cd build cmake -DCMAKE_BUILD_TYPE=Release .. cmake --build . --target prepare_cross_compiling cd .. php SplitSource.php cd build cmake --build . --target tdjson cmake --build . --target tdjson_static cd .. php SplitSource.php --undo
Dans nos tests, clang 6.0 avec libc++ nécessitait moins de 500 Mo de RAM par fichier et GCC 4.9/6.3 utilisait moins de 1 Go de RAM par fichier.
Pour les projets C++ qui utilisent CMake, la meilleure approche consiste à créer TDLib
dans le cadre de votre projet ou à l'installer à l'échelle du système.
Il existe plusieurs bibliothèques que vous pouvez utiliser dans votre projet CMake :
Td :: TdJson, Td :: TdJsonStatic — version dynamique et statique d'une interface JSON. Il possède une interface C simple, il peut donc être facilement utilisé avec n'importe quel langage de programmation capable d'exécuter des fonctions C. Consultez la documentation td_json_client pour plus d'informations.
Td :: TdStatic — bibliothèque statique avec interface C++ pour un usage général. Voir ClientManager et la documentation client pour plus d'informations.
Par exemple, une partie de votre fichier CMakeLists.txt peut ressembler à ceci :
add_subdirectory(td) target_link_libraries(YourTarget PRIVATE Td::TdStatic)
Ou vous pouvez installer TDLib
puis le référencer dans votre CMakeLists.txt comme ceci :
find_package(Td 1.8.39 REQUIRED) target_link_libraries(YourTarget PRIVATE Td::TdStatic)
Voir exemple/cpp/CMakeLists.txt.
TDLib
fournit une interface Java native via JNI. Pour l'activer, spécifiez l'option -DTD_ENABLE_JNI=ON
sur CMake.
Voir example/java pour un exemple d'utilisation TDLib
à partir de Java et des instructions détaillées de construction et d'utilisation.
TDLib
fournit une interface .NET native via C++/CLI
et C++/CX
. Pour l'activer, spécifiez l'option -DTD_ENABLE_DOTNET=ON
sur CMake. .NET Core prend en charge C++/CLI
uniquement depuis la version 3.1 et uniquement sous Windows. Par conséquent, si un ancien .NET Core est utilisé ou si la portabilité est nécessaire, l'interface TDLib
JSON doit plutôt être utilisée via P/Invoke.
Voir example/csharp pour un exemple d'utilisation TDLib
à partir de C# et des instructions détaillées de construction et d'utilisation. Voir example/uwp pour un exemple d'utilisation TDLib
à partir de l'application C# UWP et des instructions détaillées de construction et d'utilisation pour l'extension Visual Studio « TDLib pour la plateforme Windows universelle ».
Lorsque TDLib
est construit avec l'option TD_ENABLE_DOTNET
activée, la documentation C++
est supprimée de certains fichiers. Vous devez extraire ces fichiers pour renvoyer la documentation C++
:
git checkout td/telegram/Client.h td/telegram/Log.h td/tl/TlObject.h
TDLib
fournit des interfaces natives C++, Java et .NET efficaces. Mais pour la plupart des cas d'utilisation, nous suggérons d'utiliser l'interface JSON, qui peut être facilement utilisée avec n'importe quel langage de programmation capable d'exécuter des fonctions C. Consultez la documentation td_json_client pour une description détaillée de l'interface JSON, le schéma td_api.tl ou la documentation HTML générée automatiquement pour une liste de toutes les méthodes et classes TDLib
disponibles.
L'interface TDLib
JSON adhère au versionnement sémantique et les versions avec le même numéro de version majeure sont binaires et rétrocompatibles, mais l'API TDLib
sous-jacente peut être différente pour différentes versions mineures et même de correctifs. Si vous devez prendre en charge différentes versions TDLib
, vous pouvez utiliser une valeur de l'option version
pour trouver la version exacte TDLib
afin d'utiliser les méthodes API appropriées.
Voir example/python/tdjson_example.py pour un exemple d'une telle utilisation.
TDLib
est sous licence selon les termes de la licence logicielle Boost. Voir LICENSE_1_0.txt pour plus d'informations.