5 个稳定版本

1.0.5 2024年8月8日
1.0.4 2024年6月24日
1.0.3 2024年6月14日
1.0.2 2024年5月26日

开发工具 中排名第 239

Download history 455/week @ 2024-05-23 159/week @ 2024-05-30 207/week @ 2024-06-06 298/week @ 2024-06-13 172/week @ 2024-06-20 97/week @ 2024-06-27 107/week @ 2024-07-04 47/week @ 2024-07-11 68/week @ 2024-07-18 149/week @ 2024-07-25 207/week @ 2024-08-01 421/week @ 2024-08-08

每月下载量 856
tgt 中使用

MIT/Apache 协议

315KB
621 行代码(不含注释)

tdlib-rs

Latest version Documentation CI Linux CI Windows CI macOS downloads license

Telegram 数据库库的 Rust 封装。它包括一个生成器,可以从 TDLib 的 类型语言 文件中自动生成类型和函数。

为什么要创建这个分支?

这是对 tdlib-rs 库的改进版本,具有以下额外功能:

  1. 跨平台,支持 Windows、Linux 和 MacOS。
  2. 不需要在系统上编译和安装 tdlib
  3. 不需要 pkg-config 来构建库和相关的导出变量。
  4. 三种不同的库构建方式
    • download-tdlib:从 GitHub 发布版本下载预编译库。
    • local-tdlib:使用系统上安装的 tdlib
    • pkg-config:使用 pkg-config 来构建库。
  5. 可以从 GitHub 发布版本中下载 tdlib 库。

信息

我们为支持的平台提供了库的预编译版本

  • Linux (x86_64)
  • Windows (x86_64)
  • macOS Intel (x86_64)
  • macOS Apple Silicon (arm64)

我们在 CI 中编译它,并将工件上传到 GitHub 发布版本,因此我们可以下载它并用于构建此库。

主要用于在 tgt 客户端中使用,但也适用于任何其他 Rust 项目。

当前支持的 TDLib 版本:1.8.29

Cargo 特性

有关功能请参阅模块 build 的文档。这些功能可以帮助您以不同的方式构建库。

download-tdlib

如果您不想手动在系统上编译和安装 tdlib,您应该在 Cargo.toml 文件中启用 download-tdlib 特性

[dependencies]
tdlib = { version = "...", features = [ "download-tdlib" ] }

[build-dependencies]
tdlib = { version = "...", features = [ "download-tdlib" ] }
// build.rs
fn main() {
    tdlib_rs::build::build(None);
}

local-tdlib

local-tdlib 需要您在系统上编译并安装 tdlib(版本 1.8.29),并导出以下变量,例如在 .bashrc 文件中

# The path to the tdlib folder
export LOCAL_TDLIB_PATH=$HOME/lib/tdlib

然后您可以在 Cargo.toml 文件中启用 local-tdlib 功能

[dependencies]
tdlib = { version = "...", features = [ "local-tdlib" ] }

[build-dependencies]
tdlib = { version = "...", features = [ "local-tdlib" ] }
// build.rs
fn main() {
    tdlib_rs::build::build(None);
}

pkg-config

如果您想使用 pkg-config 构建此库,您应在 Cargo.toml 文件中启用 pkg-config 功能

[dependencies]
tdlib = { version = "...", features = [ "pkg-config" ] }

[build-dependencies]
tdlib = { version = "...", features = [ "pkg-config" ] }
// build.rs
fn main() {
    tdlib_rs::build::build(None);
}

请确保在您的系统上编译了 tdlib(版本 1.8.29),并且已导出以下变量,例如在 .bashrc 文件中

# pkg-config configuration
export PKG_CONFIG_PATH=$HOME/lib/tdlib/lib/pkgconfig/:$PKG_CONFIG_PATH

# dynmic linker configuration
export LD_LIBRARY_PATH=$HOME/lib/tdlib/lib/:$LD_LIBRARY_PATH

文档

此功能跳过库的链接,只生成 generated.rs 的代码。仅用于测试。

bots-only-api

此功能启用仅用于 Telegram 机器人的函数的生成。

许可证

此存储库受以下其中之一许可

您可选择。

请查阅存储库中提供的许可证文件,以获取有关许可证条款和条件的更多信息。

联系方式

致谢

  • grammers: tdlib-tl-gentdlib-tl-parser 项目是 grammers-tl-gengrammers-tl-parser 项目的分支。
  • rust-tdlib: 获取一些客户端代码的灵感。
  • tdlib-rs: 获取生成代码的灵感。

依赖关系

~1–14MB
~173K SLoC