tdlight-java/README.md

130 lines
5.0 KiB
Markdown
Raw Normal View History

2021-10-01 16:59:34 +02:00
<div align=center>
<img src="./tdlight-jtdlib.png" width="256">
<br /><br />
<h2><b>TDLight Java</b></h2>
<p>Complete Bot and Userbot Telegram library written in Java based on <a href="https://github.com/tdlib/td">TDLib</p>
<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">
<img alt="Jprofiler" src="https://local.cavallium.it/mirrors/jprofiler-logo/jprofiler-logo-badge.svg">
</a>
</div>
<br>
# **💻 - Supported platforms**
**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 16:59:34 +02:00
**Note: If you'r using OSX read down below otherwise the library won't work**
## macOS and OpenSSL
Because macOS ships with LibreSSL, wich is not compatible with TDLight-Java, you must install `openssl@1.1` using the <a href="https://brew.sh">brew package manager </a> and then linking it to `/usr/local/opt/openssl`
If you don't know how to do this, here below you can find the two commands you have to execute to get this working
```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 16:59:34 +02:00
# 📚 - **How to use the library**
## **Setting up the library using Maven**
If your are using Maven, put this code into your `pom.xml` file
2020-08-20 12:18:04 +02:00
```xml
2021-09-27 19:27:13 +02:00
<project>
<repositories>
<repository>
<id>mchv</id>
<name>MCHV Apache Maven Packages</name>
<url>https://mvn.mchv.eu/repository/mchv/</url>
</repository>
</repositories>
<dependencies>
<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, ... -->
</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 16:59:34 +02:00
## **Setting up the library using Gradle**
If you'r using Gradle, put this code on your `build.gradle`
2020-08-20 12:18:04 +02:00
```groovy
repositories {
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 16:59:34 +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:
- `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 16:59:34 +02:00
## **Usage**
2020-08-20 12:18:04 +02:00
Simple initialization of a native TDLib client
2021-01-24 13:25:25 +01:00
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)
2021-10-01 16:59:34 +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 16:59:34 +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 16:59:34 +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 16:59:34 +02:00
## **Libraries licenses**
2020-08-20 12:18:04 +02:00
2020-08-20 13:35:14 +02:00
JTDlib is licensed by Ernesto Castellotti <erny.castell@gmail.com> under the terms of the GNU Lesser General Public License 3
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