TDLib (Telegram Database library) is a cross-platform library for building Telegram clients. It can be easily used from almost any programming language.

Table of Contents


TDLib has many advantages. Notably TDLib is:

Examples and documentation

Take a look at our examples and documentation.


TDLib depends on:


Install all TDLib dependencies as described in Installing dependencies. Then enter directory containing TDLib sources and compile them using CMake:

mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
cmake --build .

Installing dependencies




Using in CMake C++ projects

For C++ projects that use CMake, the best approach is to build TDLib as part of your project or to use a prebuilt installation.

There are several libraries that you could use in your CMake project:

For example, part of your CMakeLists.txt may look like this:

target_link_libraries(YourTarget PRIVATE Td::TdStatic)

Or you could install TDLib and then reference it in your CMakeLists.txt like this:

find_package(Td 1.1.0 REQUIRED)
target_link_libraries(YourTarget PRIVATE Td::TdStatic)

See example/cpp/CMakeLists.txt.

Using in Java projects

TDLib provides native Java interface through JNI.

See example/java for example of using TDLib from Java and detailed build and usage instructions.

Using from other programming languages

TDLib provides efficient native C++, Java, and C# (will be released soon) interfaces. But for most use cases we suggest to use the JSON interface. It can be easily used with any language that supports C bindings. See example/python/ for an example of such usage.


TDLib is licensed under the terms of the Boost Software License. See LICENSE_1_0.txt for more information.