2021-10-01 19:40:35 +02:00
< div style = "text-align: center" align = "center" >
< a href = "https://github.com/tdlight-team/tdlight-java" > < img src = "./.media/tdlight-logo.png" alt = "TDLight logo" style = "width: 5rem; height: 5rem" > < / a >
< h1 > TDLight Java< / h1 >
< p > Complete Bot and Userbot Telegram library written in Java, based on < a href = "https://github.com/tdlib/td" > TDLib< / a > < / p >
2021-10-01 16:59:34 +02:00
< a href = "https://travis-ci.com/tdlight-team/tdlight-java-natives" >
< img alt = "Java CI" src = "https://img.shields.io/github/workflow/status/tdlight-team/tdlight-java/Maven%20Package?style=flat-square)" > < / a >
< a href = "https://github.com/tdlight-team/tdlight-java/releases" >
< img alt = "Release" src = "https://img.shields.io/github/v/release/tdlight-team/tdlight-java.svg?include_prereleases&style=flat-square)" >
< / a >
< a href = "https://www.ej-technologies.com/products/jprofiler/overview.html" >
2021-10-01 19:40:35 +02:00
< img alt = "JProfiler" src = "https://local.cavallium.it/mirrors/jprofiler-logo/jprofiler-logo-badge.svg" >
2021-10-01 16:59:34 +02:00
< / a >
< / div >
< br >
2021-10-01 19:40:35 +02:00
## 💻 Supported platforms
2021-10-01 16:59:34 +02:00
**Java versions**: from Java 8 to Java 17
**Operating systems**: Linux, Windows, MacOS
**CPU architectures**:
2021-09-27 19:27:13 +02:00
- i386/x86 (Linux, Windows)
- amd64/x86_64 (Linux, Windows, OSX)
- armhf/armv7 (Linux)
- aarch64/armv8/arm64 (Linux)
- s390x (Linux)
- ppc64el/ppc64le (Linux)
2020-08-20 12:18:04 +02:00
2021-10-01 16:59:34 +02:00
**Required libraries for Linux: OpenSSL and zlib**
2020-08-20 12:18:04 +02:00
2021-10-01 19:40:35 +02:00
### Install OpenSSL on macOS
You must install `openssl@1.1` using the < a href = "https://brew.sh" > brew package manager </ a > , then link openssl to `/usr/local/opt/openssl`
2021-10-01 16:59:34 +02:00
2021-10-01 19:40:35 +02:00
If you don't know how to do this, type the following commands in your terminal:
2021-10-01 16:59:34 +02:00
```bash
brew install openssl@1.1
ln -sf /usr/local/Cellar/openssl@1.1/1.1.1l /usr/local/opt/openssl
```
2021-09-30 19:14:54 +02:00
2021-10-01 19:40:35 +02:00
## 📚 How to use the library
### Setting up the library using Maven
If you are using Maven, edit your `pom.xml` file as below:
2020-08-20 12:18:04 +02:00
```xml
2021-09-27 19:27:13 +02:00
< project >
< repositories >
2021-10-01 19:40:35 +02:00
<!-- Add the following repository -->
2021-09-27 19:27:13 +02:00
< repository >
< id > mchv< / id >
< name > MCHV Apache Maven Packages< / name >
< url > https://mvn.mchv.eu/repository/mchv/< / url >
< / repository >
2021-10-01 19:40:35 +02:00
2021-09-27 19:27:13 +02:00
< / repositories >
< dependencies >
2021-10-01 19:40:35 +02:00
<!-- Add the following dependencies -->
2021-09-27 19:27:13 +02:00
< dependency >
< groupId > it.tdlight< / groupId >
< artifactId > tdlight-java< / artifactId >
< version > VERSION< / version >
< / dependency >
< dependency >
< groupId > it.tdlight< / groupId >
< artifactId > tdlight-natives-linux-amd64< / artifactId >
< version > NATIVES_VERSION< / version >
< / dependency >
<!-- Include other native versions that you want, for example for windows, osx, ... -->
2021-10-01 19:40:35 +02:00
2021-09-27 19:27:13 +02:00
< / dependencies >
< / project >
2020-08-23 15:59:19 +02:00
```
2021-09-27 19:27:13 +02:00
Replace `VERSION` with the latest release version, you can find it [here ](https://github.com/tdlight-team/tdlight-java/releases ).
Replace `NATIVES_VERSION` with the latest native version.
Make sure that you are using the correct natives version for the release that you are using.
2021-10-01 19:40:35 +02:00
## Setting up the library using Gradle
If you are using Gradle, add the following lines into your `build.gradle` file
2020-08-20 12:18:04 +02:00
```groovy
repositories {
2020-12-30 00:05:47 +01:00
maven { url "https://mvn.mchv.eu/repository/mchv/" }
2020-08-20 12:18:04 +02:00
}
dependencies {
2021-09-27 19:27:13 +02:00
implementation 'it.tdlight:tdlight-java:LATEST_VERSION'
implementation 'it.tdlight:tdlight-natives-linux-amd64:NATIVES_VERSION'
// Include other native versions that you want, for example for windows, osx, ...
2020-08-20 12:18:04 +02:00
}
```
2021-09-27 19:27:13 +02:00
Replace `VERSION` with the latest release version, you can find it [here ](https://github.com/tdlight-team/tdlight-java/releases ).
Replace `NATIVES_VERSION` with the latest native version.
Make sure that you are using the correct natives version for the release that you are using.
2021-10-01 19:40:35 +02:00
## âš’ Native dependencies
2021-09-27 19:27:13 +02:00
To use TDLight Java you need to include one or more native dependencies:
2020-12-30 00:05:47 +01:00
- `tdlight-natives-linux-amd64`
- `tdlight-natives-linux-aarch64`
- `tdlight-natives-linux-x86`
- `tdlight-natives-linux-armv6`
- `tdlight-natives-linux-armv7`
- `tdlight-natives-linux-ppc64le`
- `tdlight-natives-windows-amd64`
- `tdlight-natives-osx-amd64`
2021-10-01 19:40:35 +02:00
## Usage
2021-09-27 19:27:13 +02:00
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 )
2020-10-13 02:02:24 +02:00
2021-10-06 20:43:57 +02:00
### Advanced usage
If you want to disable the automatic runtime shutdown hook, you should set the property `it.tdlight.enableShutdownHooks` to `false`
2021-10-01 19:40:35 +02:00
### TDLight methods documentation
2021-09-27 19:27:13 +02:00
[TdApi JavaDoc ](https://tdlight-team.github.io/tdlight-docs )
2020-08-20 13:46:17 +02:00
2021-10-01 19:40:35 +02:00
### TDLight extended features
2021-09-27 19:27:13 +02:00
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 ).
2020-08-28 21:38:49 +02:00
2021-10-01 19:40:35 +02:00
## About
### **License**
2020-08-20 13:35:14 +02:00
TDLight is licensed by Andrea Cavalli < andrea @ cavallium . it > under the terms of the GNU Lesser General Public License 3
2020-08-20 12:18:04 +02:00
2021-10-01 19:40:35 +02:00
### **Libraries licenses**
2020-08-20 12:18:04 +02:00
2021-10-01 19:40:35 +02:00
JTDLib is licensed by Ernesto Castellotti < erny.castell @ gmail . com > under the terms of the GNU Lesser General Public License 3
2020-08-20 13:35:14 +02:00
TDLib is licensed by Aliaksei Levin < levlam @ telegram . org > and Arseny Smirnov < arseny30 @ gmail . com > under the terms of the Boost Software License
OpenSSL is licensed under the terms of Apache License v2
2020-08-20 17:10:36 +02:00
Zlib is licensed under the terms of Zlib license