TDLib(텔레그램 데이터베이스 라이브러리)는 텔레그램 클라이언트를 구축하기 위한 크로스 플랫폼 라이브러리입니다. 거의 모든 프로그래밍 언어에서 쉽게 사용할 수 있습니다.
특징
예제 및 문서
종속성
건물
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
인스턴스는 25000개 이상의 활성 봇을 동시에 처리합니다.
잘 문서화됨 : 모든 TDLib
API 메소드와 공용 인터페이스가 완전히 문서화되어 있습니다.
일관성 : TDLib
모든 업데이트가 올바른 순서로 전달되도록 보장합니다.
신뢰성 : TDLib
느리고 불안정한 인터넷 연결에서도 안정성을 유지합니다.
보안 : 모든 로컬 데이터는 사용자가 제공한 암호화 키를 사용하여 암호화됩니다.
완전 비동기식 : TDLib
에 대한 요청은 서로 또는 다른 것을 차단하지 않으며, 사용 가능한 경우 응답이 전송됩니다.
기본 TDLib 개념에 대한 설명은 시작하기 튜토리얼을 참조하세요.
우리의 예를 살펴보십시오.
TDLib 빌드 방법에 대한 자세한 지침은 TDLib 빌드 지침 생성기를 참조하세요.
JSON, C++, Java 및 .NET 인터페이스에 대한 설명을 참조하세요.
사용 가능한 모든 TDLib
메소드 및 클래스 목록은 td_api.tl 구성표 또는 자동으로 생성된 HTML 문서를 참조하세요.
TDLib
다음에 따라 달라집니다.
C++14 호환 컴파일러(Clang 3.4+, GCC 4.9+, MSVC 19.0+(Visual Studio 2015+), Intel C++ 컴파일러 17+)
OpenSSL
zlib
gperf(빌드 전용)
CMake(3.0.2+, 빌드 전용)
PHP(선택사항, 문서 생성용)
TDLib
빌드하는 가장 간단한 방법은 TDLib 빌드 지침 생성기를 사용하는 것입니다. 전체 빌드 지침을 받으려면 프로그래밍 언어와 대상 운영 체제를 선택하기만 하면 됩니다.
일반적으로 모든 TDLib
종속성을 설치하고 TDLib
소스가 포함된 디렉터리를 입력한 후 CMake를 사용하여 컴파일해야 합니다.
mkdir build cd build cmake -DCMAKE_BUILD_TYPE=Release .. cmake --build .
메모리가 낮은 장치에서 TDLib
빌드하려면 기본 TDLib
소스 코드를 컴파일하기 전에 SplitSource.php 스크립트를 실행하고 필요한 대상만 컴파일할 수 있습니다.
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
테스트에서 libc++가 포함된 clang 6.0은 파일당 500MB 미만의 RAM이 필요했고 GCC 4.9/6.3은 파일당 1GB 미만의 RAM을 사용했습니다.
CMake를 사용하는 C++ 프로젝트의 경우 가장 좋은 접근 방식은 TDLib
프로젝트의 일부로 빌드하거나 시스템 전체에 설치하는 것입니다.
CMake 프로젝트에서 사용할 수 있는 여러 라이브러리가 있습니다.
Td::TdJson, Td::TdJsonStatic — JSON 인터페이스의 동적 및 정적 버전입니다. 이는 간단한 C 인터페이스를 가지고 있으므로 C 기능을 실행할 수 있는 모든 프로그래밍 언어에서 쉽게 사용할 수 있습니다. 자세한 내용은 td_json_client 설명서를 참조하세요.
Td::TdStatic — 일반적인 사용을 위한 C++ 인터페이스가 있는 정적 라이브러리입니다. 자세한 내용은 ClientManager 및 클라이언트 설명서를 참조하세요.
예를 들어 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)
example/cpp/CMakeLists.txt를 참조하세요.
TDLib
JNI를 통해 기본 Java 인터페이스를 제공합니다. 이를 활성화하려면 -DTD_ENABLE_JNI=ON
옵션을 CMake에 지정하세요.
Java에서 TDLib
사용하는 예와 자세한 빌드 및 사용 지침은 example/java를 참조하세요.
TDLib
C++/CLI
및 C++/CX
를 통해 기본 .NET 인터페이스를 제공합니다. 이를 활성화하려면 CMake에 -DTD_ENABLE_DOTNET=ON
옵션을 지정하세요. .NET Core는 버전 3.1부터 Windows에서만 C++/CLI
지원하므로 이전 .NET Core를 사용하거나 이식성이 필요한 경우 대신 P/Invoke를 통해 TDLib
JSON 인터페이스를 사용해야 합니다.
C#에서 TDLib
사용하는 예와 자세한 빌드 및 사용 지침은 example/csharp를 참조하세요. C# UWP 애플리케이션에서 TDLib
사용하는 예와 Visual Studio 확장 "유니버설 Windows 플랫폼용 TDLib"에 대한 자세한 빌드 및 사용 지침은 example/uwp를 참조하세요.
TD_ENABLE_DOTNET
옵션을 활성화하여 TDLib
빌드하면 일부 파일에서 C++
문서가 제거됩니다. C++
문서를 다시 반환하려면 다음 파일을 체크아웃해야 합니다.
git checkout td/telegram/Client.h td/telegram/Log.h td/tl/TlObject.h
TDLib
효율적인 네이티브 C++, Java 및 .NET 인터페이스를 제공합니다. 그러나 대부분의 사용 사례에서는 C 기능을 실행할 수 있는 모든 프로그래밍 언어에서 쉽게 사용할 수 있는 JSON 인터페이스를 사용하는 것이 좋습니다. 자세한 JSON 인터페이스 설명은 td_json_client 문서를 참조하고, 사용 가능한 모든 TDLib
메서드 및 클래스 목록은 td_api.tl 구성표 또는 자동 생성된 HTML 문서를 참조하세요.
TDLib
JSON 인터페이스는 의미론적 버전 관리를 준수하며 동일한 주 버전 번호를 가진 버전은 바이너리이며 이전 버전과 호환되지만 기본 TDLib
API는 다른 부 버전과 패치 버전에 따라 다를 수 있습니다. 다양한 TDLib
버전을 지원해야 하는 경우 version
옵션 값을 사용하여 정확한 TDLib
버전을 찾아 적절한 API 메소드를 사용할 수 있습니다.
이러한 사용법의 예는 example/python/tdjson_example.py를 참조하세요.
TDLib
Boost 소프트웨어 라이선스 조건에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE_1_0.txt를 참조하세요.