Files
tglock/Cargo.toml

74 lines
2.8 KiB
TOML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
[package]
name = "tglock"
version = "2.0.0-beta.3"
edition = "2021"
rust-version = "1.88"
description = "Telegram unblock via local WebSocket tunnel"
license = "MIT"
autobins = false
[features]
default = ["gui"]
# The graphical application, on desktop and on Android. Turning it off drops
# Tauri, the system WebView and the frontend bundle from the build, which is
# what makes headless servers and machines without a GPU or monitor able to
# build and run TGLock at all.
gui = ["dep:tauri", "dep:tauri-build", "dep:tauri-plugin-opener"]
[lib]
# Отличается от имени бинаря намеренно: одинаковые имена lib и bin дают
# коллизию выходных файлов, которую cargo обещает сделать ошибкой.
name = "tglock_lib"
path = "src/lib.rs"
# Android загружает приложение как нативную библиотеку, а не как исполняемый
# файл, поэтому нужен cdylib. rlib остаётся для CLI и тестов.
crate-type = ["staticlib", "cdylib", "rlib"]
[[bin]]
name = "tglock"
path = "src/main.rs"
required-features = ["gui"]
[[bin]]
name = "tglock-cli"
path = "src/bin/cli.rs"
[dependencies]
tauri = { version = "2", features = [], optional = true }
# Opens the tg:// link. Unlike the `open` crate this works on Android too.
tauri-plugin-opener = { version = "2", optional = true }
clap = { version = "4", features = ["derive"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
tokio = { version = "1", features = [
"rt-multi-thread",
"net",
"io-util",
"time",
"macros",
"sync",
"signal",
] }
# rustls вместо native-tls: на чистом Rust, поэтому кросскомпилируется под
# Android без OpenSSL, а на Linux снимает зависимость от системного libssl.
# webpki-roots несёт корневые сертификаты с собой, так что поведение одинаково
# на всех платформах и не зависит от системного хранилища.
tokio-tungstenite = { version = "0.24", features = ["rustls-tls-webpki-roots"] }
# Провайдер выбирается явно: rustls 0.23 не определяет его сам, если фичи не
# включают ровно один, и падает паникой при первом TLS-соединении. ring выбран
# потому что кросскомпилируется под Android без внешнего тулчейна.
rustls = { version = "0.23", default-features = false, features = [
"ring",
"std",
"tls12",
] }
futures-util = "0.3"
aes = "0.8"
ctr = "0.9"
cipher = "0.4"
sha2 = "0.10"
rand = "0.8"
[build-dependencies]
tauri-build = { version = "2", features = [], optional = true }