TDLib (Telegram Database library) is a cross-platform library for building [Telegram](https://telegram.org) clients. It can be easily used from almost any programming language.
* **Cross-platform**: `TDLib` can be used on Android, iOS, Windows, macOS, Linux, Windows Phone, WebAssembly, watchOS, tvOS, Tizen, Cygwin. It should also work on other *nix systems with or without minimal effort.
* **Multilanguage**: `TDLib` can be easily used with any programming language that is able to execute C functions. Additionally it already has native bindings to Java (using JNI) and C# (using C++/CLI).
* **Easy to use**: `TDLib` takes care of all network implementation details, encryption and local data storage.
* **High-performance**: in the [Telegram Bot API](https://core.telegram.org/bots/api), each `TDLib` instance handles more than 18000 active bots simultaneously.
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:
* Td::TdJson, Td::TdJsonStatic— dynamic and static version of a json interface. Has a simple C interface, so it can be easily used with any programming language that supports C bindings.
* Td::TdStatic — static library with C++ interface.
* Td::TdCoreStatic — static library with low-level C++ interface intended mostly for internal usage.
For example, part of your CMakeLists.txt may look like this:
See [example/cpp/CMakeLists.txt](https://github.com/tdlib/td/tree/master/example/cpp/CMakeLists.txt).
<aname="using-java"></a>
## Using in Java projects
TDLib provides native Java interface through JNI.
See [example/java](https://github.com/tdlib/td/tree/master/example/java) for example of using TDLib from Java and detailed build and usage instructions.
<aname="using-json"></a>
## 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 bindinds. See
[example/python/tdjson_example.py](https://github.com/tdlib/td/tree/master/example/python/tdjson_example.py) for an
example of such usage.
<aname="license"></a>
## License
The TDLib is licensed under the terms of the Boost Software License. See [LICENSE_1_0.txt](http://www.boost.org/LICENSE_1_0.txt) for more information.