TDLib (Perpustakaan Basis Data Telegram) adalah perpustakaan lintas platform untuk membangun klien Telegram. Ini dapat dengan mudah digunakan dari hampir semua bahasa pemrograman.
Fitur
Contoh dan dokumentasi
Ketergantungan
Bangunan
Menggunakan proyek CMake C++
Menggunakan dalam proyek Java
Menggunakan dalam proyek .NET
Menggunakan dengan bahasa pemrograman lain
Lisensi
TDLib
memiliki banyak keunggulan. Khususnya TDLib
adalah:
Lintas platform : TDLib
dapat digunakan di Android, iOS, Windows, macOS, Linux, FreeBSD, OpenBSD, NetBSD, illumos, Windows Phone, WebAssembly, watchOS, tvOS, visionOS, Tizen, Cygwin. Ini juga harus bekerja pada sistem *nix lainnya dengan atau tanpa sedikit usaha.
Multibahasa : TDLib
dapat dengan mudah digunakan dengan bahasa pemrograman apa pun yang mampu menjalankan fungsi C. Selain itu, ia sudah memiliki binding asli Java (menggunakan JNI
) dan binding .NET (menggunakan C++/CLI
dan C++/CX
).
Mudah digunakan : TDLib
menangani semua detail implementasi jaringan, enkripsi, dan penyimpanan data lokal.
Performa tinggi : di API Bot Telegram, setiap instance TDLib
menangani lebih dari 25.000 bot aktif secara bersamaan.
Terdokumentasi dengan baik : semua metode TDLib
API dan antarmuka publik didokumentasikan sepenuhnya.
Konsisten : TDLib
menjamin bahwa semua pembaruan dikirimkan dalam urutan yang benar.
Andal : TDLib
tetap stabil pada koneksi Internet yang lambat dan tidak dapat diandalkan.
Aman : semua data lokal dienkripsi menggunakan kunci enkripsi yang disediakan pengguna.
Sepenuhnya asinkron : permintaan ke TDLib
tidak saling memblokir atau apa pun, respons dikirim saat tersedia.
Lihat tutorial Memulai kami untuk deskripsi konsep dasar TDLib.
Lihatlah contoh kami.
Lihat generator instruksi pembuatan TDLib untuk petunjuk detail tentang cara membuat TDLib.
Lihat deskripsi antarmuka JSON, C++, Java dan .NET kami.
Lihat skema td_api.tl atau dokumentasi HTML yang dibuat secara otomatis untuk daftar semua metode dan kelas TDLib
yang tersedia.
TDLib
bergantung pada:
Kompiler yang kompatibel dengan C++14 (Clang 3.4+, GCC 4.9+, MSVC 19.0+ (Visual Studio 2015+), Intel C++ Compiler 17+)
OpenSSL
zlib
gperf (khusus build)
CMake (3.0.2+, khusus build)
PHP (opsional, untuk pembuatan dokumentasi)
Cara termudah untuk membangun TDLib
adalah dengan menggunakan generator instruksi pembuatan TDLib kami. Anda hanya perlu memilih bahasa pemrograman dan sistem operasi target untuk menerima instruksi pembuatan yang lengkap.
Secara umum, Anda perlu menginstal semua dependensi TDLib
, masuk ke direktori yang berisi sumber TDLib
dan kompilasi menggunakan CMake:
mkdir build cd build cmake -DCMAKE_BUILD_TYPE=Release .. cmake --build .
Untuk membangun TDLib
pada perangkat dengan memori rendah, Anda dapat menjalankan skrip SplitSource.php sebelum mengkompilasi kode sumber TDLib
utama dan hanya mengkompilasi target yang diperlukan:
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
Dalam pengujian kami, clang 6.0 dengan libc++ memerlukan kurang dari 500 MB RAM per file dan GCC 4.9/6.3 menggunakan kurang dari 1 GB RAM per file.
Untuk proyek C++ yang menggunakan CMake, pendekatan terbaik adalah membangun TDLib
sebagai bagian dari proyek Anda atau menginstalnya di seluruh sistem.
Ada beberapa perpustakaan yang dapat Anda gunakan dalam proyek CMake Anda:
Td::TdJson, Td::TdJsonStatic — versi dinamis dan statis dari antarmuka JSON. Ini memiliki antarmuka C yang sederhana, sehingga dapat dengan mudah digunakan dengan bahasa pemrograman apa pun yang mampu menjalankan fungsi C. Lihat dokumentasi td_json_client untuk informasi lebih lanjut.
Td::TdStatic — perpustakaan statis dengan antarmuka C++ untuk penggunaan umum. Lihat ClientManager dan dokumentasi Klien untuk informasi lebih lanjut.
Misalnya, bagian dari CMakeLists.txt Anda mungkin terlihat seperti ini:
add_subdirectory(td) target_link_libraries(YourTarget PRIVATE Td::TdStatic)
Atau Anda dapat menginstal TDLib
dan mereferensikannya di CMakeLists.txt Anda seperti ini:
find_package(Td 1.8.39 REQUIRED) target_link_libraries(YourTarget PRIVATE Td::TdStatic)
Lihat contoh/cpp/CMakeLists.txt.
TDLib
menyediakan antarmuka Java asli melalui JNI. Untuk mengaktifkannya, tentukan opsi -DTD_ENABLE_JNI=ON
ke CMake.
Lihat contoh/java untuk contoh penggunaan TDLib
dari Java dan petunjuk pembuatan dan penggunaan secara rinci.
TDLib
menyediakan antarmuka .NET asli melalui C++/CLI
dan C++/CX
. Untuk mengaktifkannya, tentukan opsi -DTD_ENABLE_DOTNET=ON
ke CMake. .NET Core hanya mendukung C++/CLI
sejak versi 3.1 dan hanya di Windows, jadi jika .NET Core yang lebih lama digunakan atau diperlukan portabilitas, maka antarmuka TDLib
JSON harus digunakan melalui P/Invoke.
Lihat example/csharp untuk contoh penggunaan TDLib
dari C# dan petunjuk pembuatan dan penggunaan secara rinci. Lihat contoh/uwp misalnya penggunaan TDLib
dari aplikasi C# UWP dan petunjuk pembuatan dan penggunaan terperinci untuk Ekstensi Visual Studio "TDLib untuk Platform Windows Universal".
Ketika TDLib
dibuat dengan opsi TD_ENABLE_DOTNET
diaktifkan, dokumentasi C++
dihapus dari beberapa file. Anda perlu memeriksa file-file ini untuk mengembalikan dokumentasi C++
:
git checkout td/telegram/Client.h td/telegram/Log.h td/tl/TlObject.h
TDLib
menyediakan antarmuka C++, Java, dan .NET asli yang efisien. Namun untuk sebagian besar kasus penggunaan, kami menyarankan untuk menggunakan antarmuka JSON, yang dapat dengan mudah digunakan dengan bahasa pemrograman apa pun yang mampu menjalankan fungsi C. Lihat dokumentasi td_json_client untuk deskripsi detail antarmuka JSON, skema td_api.tl, atau dokumentasi HTML yang dibuat secara otomatis untuk daftar semua metode dan kelas TDLib
yang tersedia.
Antarmuka TDLib
JSON mematuhi versi semantik dan versi dengan nomor versi utama yang sama bersifat biner dan kompatibel ke belakang, namun TDLib
API yang mendasarinya dapat berbeda untuk versi minor dan bahkan patch yang berbeda. Jika Anda perlu mendukung versi TDLib
yang berbeda, Anda dapat menggunakan nilai opsi version
untuk menemukan versi TDLib
yang tepat untuk menggunakan metode API yang sesuai.
Lihat example/python/tdjson_example.py untuk contoh penggunaan tersebut.
TDLib
dilisensikan berdasarkan ketentuan Lisensi Perangkat Lunak Boost. Lihat LICENSE_1_0.txt untuk informasi lebih lanjut.