TDLight logo

TDLight Java

Complete Bot and Userbot Telegram library written in Java, based on TDLib

Maven package Release JProfiler

## 💻 Supported platforms **Java versions**: from Java 17 to Java 19+ (Java 8 to 16 is supported if you use the following dependency classifier: `jdk8`) **Operating systems**: Linux, Windows, MacOS **CPU architectures**: - amd64/x86_64 (Linux, Windows, MacOS) - armhf/armv7 (Linux) - aarch64/armv8/arm64 (Linux) - ppc64el/ppc64le (Linux) ## 📚 Required libraries - **Linux: libc++, OpenSSL1/OpenSSL3, zlib** - **MacOS: OpenSSL** - **Windows: [Microsoft Visual C++ Redistributable](https://aka.ms/vs/17/release/vc_redist.x64.exe)** ### Install OpenSSL on macOS You must install `openssl@3` using the brew package manager , then link openssl to `/usr/local/opt/openssl` If you don't know how to do this, type the following commands in your terminal: ```bash brew install openssl@3 ln -sf /usr/local/Cellar/openssl@3/3.0.0 /usr/local/opt/openssl ``` ## 📚 How to use the library ### Setting up the library using Maven If you are using Maven, edit your `pom.xml` file as below: ```xml mchv MCHV Apache Maven Packages https://mvn.mchv.eu/repository/mchv/ it.tdlight tdlight-java-bom VERSION pom import it.tdlight tdlight-java it.tdlight tdlight-natives linux_amd64_ssl1 it.tdlight tdlight-natives windows_amd64 ``` Replace `VERSION` with the latest release version, you can find it [here](https://github.com/tdlight-team/tdlight-java/releases). ## Setting up the library using Gradle If you are using Gradle, add the following lines into your `build.gradle` file ```groovy repositories { maven { url "https://mvn.mchv.eu/repository/mchv/" } } dependencies { // import the BOM implementation platform('it.tdlight:tdlight-java-bom:VERSION') // do not specify the versions on the dependencies below! implementation 'it.tdlight:tdlight-java:VERSION' // Java 8 is supported if you use the following dependency classifier: `jdk8` implementation 'it.tdlight:tdlight-natives:VERSION:linux_amd64_ssl1' // Include other native classifiers, for example linux_amd64_ssl3, macos_amd64, ... --> } ``` Replace `VERSION` with the latest release version, you can find it [here](https://github.com/tdlight-team/tdlight-java/releases). ## ⚒ Native dependencies To use TDLight Java you need to include the native libraries, by specifying one of the following classifier for each tdlight-natives dependency: - `linux_amd64_ssl1` - `linux_amd64_ssl3` - `linux_arm64_ssl1` - `linux_arm64_ssl3` - `linux_ppc64le_ssl3` - `windows_amd64` - `macos_amd64` ## Usage An example on how to use TDLight Java can be found here: [Example.java](https://github.com/tdlight-team/tdlight-java/blob/master/example/src/main/java/it/tdlight/example/Example.java) ### Advanced usage If you want to disable the automatic runtime shutdown hook, you should set the property `it.tdlight.enableShutdownHooks` to `false` ### TDLight methods documentation [TdApi JavaDoc](https://tdlight-team.github.io/tdlight-docs) ### TDLight extended features TDLight has some extended features compared to TDLib, that you can see on the [TDLight official repository](https://github.com/tdlight-team/tdlight#tdlight-extra-features). ## About ### **License** TDLight is licensed by Andrea Cavalli under the terms of the GNU Lesser General Public License 3 ### **Libraries licenses** JTDLib is licensed by Ernesto Castellotti under the terms of the GNU Lesser General Public License 3 TDLib is licensed by Aliaksei Levin and Arseny Smirnov under the terms of the Boost Software License OpenSSL is licensed under the terms of Apache License v2 Zlib is licensed under the terms of Zlib license