TDLib (ไลบรารีฐานข้อมูล Telegram) เป็นไลบรารีข้ามแพลตฟอร์มสำหรับการสร้างไคลเอ็นต์ Telegram สามารถใช้งานได้ง่ายจากเกือบทุกภาษาการเขียนโปรแกรม
คุณสมบัติ
ตัวอย่างและเอกสารประกอบ
การพึ่งพาอาศัยกัน
อาคาร
ใช้ในโครงการ CMake C++
การใช้งานในโครงการ Java
การใช้งานในโครงการ .NET
การใช้งานร่วมกับภาษาโปรแกรมอื่นๆ
ใบอนุญาต
TDLib
มีข้อดีหลายประการ โดยเฉพาะอย่างยิ่ง TDLib
คือ:
ข้ามแพลตฟอร์ม : TDLib
สามารถใช้ได้กับ Android, iOS, Windows, macOS, Linux, FreeBSD, OpenBSD, NetBSD, illumos, Windows Phone, WebAssembly, watchOS, tvOS, visionOS, Tizen, Cygwin นอกจากนี้ ควรทำงานบนระบบ *nix อื่นๆ โดยมีหรือไม่มีความพยายามเพียงเล็กน้อย
หลายภาษา : TDLib
สามารถใช้งานได้อย่างง่ายดายกับภาษาการเขียนโปรแกรมใด ๆ ที่สามารถรันฟังก์ชัน C ได้ นอกจากนี้ยังมีการเชื่อมโยง Java ดั้งเดิม (โดยใช้ JNI
) และการเชื่อมโยง .NET (โดยใช้ C++/CLI
และ C++/CX
) อยู่แล้ว
ใช้งานง่าย : TDLib
ดูแลรายละเอียดการใช้งานเครือข่ายทั้งหมด การเข้ารหัส และการจัดเก็บข้อมูลในเครื่อง
ประสิทธิภาพสูง : ใน Telegram Bot API แต่ละอินสแตนซ์ TDLib
จะจัดการบอทที่ทำงานอยู่มากกว่า 25,000 ตัวพร้อมกัน
มีการจัดทำเอกสารไว้อย่างดี : วิธีการ TDLib
API และอินเทอร์เฟซสาธารณะทั้งหมดได้รับการบันทึกไว้อย่างครบถ้วน
สอดคล้องกัน : TDLib
รับประกันว่าการอัปเดตทั้งหมดจะถูกส่งในลำดับที่ถูกต้อง
เชื่อถือได้ : TDLib
ยังคงเสถียรบนการเชื่อมต่ออินเทอร์เน็ตที่ช้าและไม่น่าเชื่อถือ
ปลอดภัย : ข้อมูลในเครื่องทั้งหมดถูกเข้ารหัสโดยใช้คีย์เข้ารหัสที่ผู้ใช้ระบุ
แบบอะซิงโครนัสอย่างสมบูรณ์ : คำขอไปยัง TDLib
จะไม่บล็อกซึ่งกันและกันหรือสิ่งอื่นใด ระบบจะส่งการตอบกลับเมื่อคำขอเหล่านั้นพร้อมใช้งาน
ดูบทช่วยสอนการเริ่มต้นใช้งานของเราสำหรับคำอธิบายแนวคิดพื้นฐานของ TDLib
ลองดูตัวอย่างของเรา
ดูตัวสร้างคำแนะนำการสร้าง TDLib สำหรับคำแนะนำโดยละเอียดเกี่ยวกับวิธีการสร้าง TDLib
ดูคำอธิบายอินเทอร์เฟซ JSON, C++, Java และ .NET ของเรา
ดูรูปแบบ td_api.tl หรือเอกสาร HTML ที่สร้างขึ้นโดยอัตโนมัติสำหรับรายการวิธีและคลาส TDLib
ที่ใช้ได้ทั้งหมด
TDLib
ขึ้นอยู่กับ:
คอมไพเลอร์ที่เข้ากันได้กับ C++14 (Clang 3.4+, GCC 4.9+, MSVC 19.0+ (Visual Studio 2015+), Intel C++ Compiler 17+)
OpenSSL
ซลิบ
gperf (บิวด์เท่านั้น)
CMake (3.0.2+ สร้างเท่านั้น)
PHP (เป็นทางเลือก สำหรับการสร้างเอกสาร)
วิธีที่ง่ายที่สุดในการสร้าง TDLib
คือการใช้ตัวสร้างคำสั่งการสร้าง TDLib ของเรา คุณเพียงแค่ต้องเลือกภาษาการเขียนโปรแกรมและระบบปฏิบัติการเป้าหมายของคุณเพื่อรับคำแนะนำในการสร้างที่สมบูรณ์
โดยทั่วไป คุณจะต้องติดตั้งการขึ้นต่อกันของ TDLib
ทั้งหมด ป้อนไดเร็กทอรีที่มีแหล่งที่มา TDLib
และคอมไพล์โดยใช้ CMake:
mkdir build cd build cmake -DCMAKE_BUILD_TYPE=Release .. cmake --build .
หากต้องการสร้าง TDLib
บนอุปกรณ์หน่วยความจำเหลือน้อย คุณสามารถเรียกใช้สคริปต์ SplitSource.php ก่อนที่จะคอมไพล์ซอร์สโค้ด TDLib
หลักและคอมไพล์เฉพาะเป้าหมายที่จำเป็นเท่านั้น:
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
ในการทดสอบของเรา clang 6.0 พร้อม libc++ ต้องใช้ RAM น้อยกว่า 500 MB ต่อไฟล์ และ GCC 4.9/6.3 ใช้ RAM น้อยกว่า 1 GB ต่อไฟล์
สำหรับโปรเจ็กต์ C++ ที่ใช้ CMake แนวทางที่ดีที่สุดคือการสร้าง TDLib
เป็นส่วนหนึ่งของโปรเจ็กต์ของคุณหรือติดตั้งทั่วทั้งระบบ
มีไลบรารีหลายแห่งที่คุณสามารถใช้ในโครงการ CMake ของคุณ:
Td::TdJson, Td::TdJsonStatic — เวอร์ชันแบบไดนามิกและคงที่ของอินเทอร์เฟซ JSON มีอินเทอร์เฟซ C ที่เรียบง่าย จึงสามารถใช้กับภาษาการเขียนโปรแกรมใดๆ ที่สามารถรันฟังก์ชัน C ได้อย่างง่ายดาย ดูเอกสารประกอบ td_json_client สำหรับข้อมูลเพิ่มเติม
Td::TdStatic - ไลบรารีแบบคงที่พร้อมอินเทอร์เฟซ C ++ สำหรับการใช้งานทั่วไป ดูเอกสารประกอบ ClientManager และ Client สำหรับข้อมูลเพิ่มเติม
ตัวอย่างเช่น ส่วนหนึ่งของ CMakeLists.txt ของคุณอาจมีลักษณะดังนี้:
add_subdirectory(td) target_link_libraries(YourTarget PRIVATE Td::TdStatic)
หรือคุณสามารถติดตั้ง TDLib
แล้วอ้างอิงใน CMakeLists.txt ของคุณดังนี้:
find_package(Td 1.8.39 REQUIRED) target_link_libraries(YourTarget PRIVATE Td::TdStatic)
ดูตัวอย่าง/cpp/CMakeLists.txt
TDLib
มีอินเทอร์เฟซ Java ดั้งเดิมผ่าน JNI หากต้องการเปิดใช้งาน ให้ระบุตัวเลือก -DTD_ENABLE_JNI=ON
ให้กับ CMake
ดูตัวอย่าง/java ตัวอย่างการใช้ TDLib
จาก Java และคำแนะนำการสร้างและการใช้งานโดยละเอียด
TDLib
มีอินเทอร์เฟซ .NET ดั้งเดิมผ่าน C++/CLI
และ C++/CX
หากต้องการเปิดใช้งาน ให้ระบุตัวเลือก -DTD_ENABLE_DOTNET=ON
เป็น CMake .NET Core รองรับ C++/CLI
ตั้งแต่เวอร์ชัน 3.1 และบน Windows เท่านั้น ดังนั้นหากใช้ .NET Core รุ่นเก่าหรือจำเป็นต้องพกพาได้ ควรใช้อินเทอร์เฟซ TDLib
JSON ผ่าน P/Inrigg แทน
ดูตัวอย่าง/csharp ตัวอย่างการใช้ TDLib
จาก C# และคำแนะนำการสร้างและการใช้งานโดยละเอียด ดูตัวอย่าง/uwp ตัวอย่างการใช้ TDLib
จากแอปพลิเคชัน C# UWP และคำแนะนำการสร้างและการใช้งานโดยละเอียดสำหรับ Visual Studio Extension "TDLib สำหรับ Universal Windows Platform"
เมื่อ TDLib
ถูกสร้างขึ้นโดยเปิดใช้งานตัวเลือก TD_ENABLE_DOTNET
เอกสาร C++
จะถูกลบออกจากไฟล์บางไฟล์ คุณต้องชำระเงินไฟล์เหล่านี้เพื่อส่งคืนเอกสาร C++
กลับ:
git checkout td/telegram/Client.h td/telegram/Log.h td/tl/TlObject.h
TDLib
มอบอินเทอร์เฟซ C++, Java และ .NET ดั้งเดิมที่มีประสิทธิภาพ แต่สำหรับกรณีการใช้งานส่วนใหญ่ เราแนะนำให้ใช้อินเทอร์เฟซ JSON ซึ่งสามารถใช้กับภาษาการเขียนโปรแกรมใดๆ ที่สามารถเรียกใช้ฟังก์ชัน C ได้อย่างง่ายดาย ดูเอกสารประกอบ td_json_client สำหรับคำอธิบายอินเทอร์เฟซ JSON โดยละเอียด รูปแบบ td_api.tl หรือเอกสาร HTML ที่สร้างขึ้นโดยอัตโนมัติสำหรับรายการเมธอดและคลาส TDLib
ที่ใช้ได้ทั้งหมด
อินเทอร์เฟซ TDLib
JSON เป็นไปตามการกำหนดเวอร์ชันเชิงความหมาย และเวอร์ชันที่มีหมายเลขเวอร์ชันหลักเหมือนกันจะเป็นแบบไบนารีและเข้ากันได้แบบย้อนหลัง แต่ TDLib
API พื้นฐานอาจแตกต่างกันสำหรับเวอร์ชันรองและเวอร์ชันแพตช์ที่แตกต่างกัน หากคุณต้องการรองรับเวอร์ชัน TDLib
ที่แตกต่างกัน คุณสามารถใช้ค่าของตัวเลือก version
เพื่อค้นหาเวอร์ชัน TDLib
ที่แน่นอนเพื่อใช้วิธีการ API ที่เหมาะสม
ดู example/python/tdjson_example.py สำหรับตัวอย่างการใช้งานดังกล่าว
TDLib
ได้รับอนุญาตภายใต้เงื่อนไขของ Boost Software License ดู LICENSE_1_0.txt สำหรับข้อมูลเพิ่มเติม