mirror of
https://github.com/by-sonic/tglock.git
synced 2026-09-05 18:16:09 +03:00
74 lines
2.8 KiB
TOML
74 lines
2.8 KiB
TOML
[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 }
|