mirror of https://github.com/jackwener/wx-cli.git
147 lines
3.1 KiB
Plaintext
147 lines
3.1 KiB
Plaintext
=== Source tree structure ===
|
||
./src/cli/contacts.rs
|
||
./src/cli/daemon_cmd.rs
|
||
./src/cli/export.rs
|
||
./src/cli/favorites.rs
|
||
./src/cli/history.rs
|
||
./src/cli/init.rs
|
||
./src/cli/members.rs
|
||
./src/cli/mod.rs
|
||
./src/cli/new_messages.rs
|
||
./src/cli/output.rs
|
||
./src/cli/search.rs
|
||
./src/cli/sessions.rs
|
||
./src/cli/sns_feed.rs
|
||
./src/cli/sns_notifications.rs
|
||
./src/cli/sns_search.rs
|
||
./src/cli/stats.rs
|
||
./src/cli/transport.rs
|
||
./src/cli/unread.rs
|
||
./src/config.rs
|
||
./src/crypto/mod.rs
|
||
./src/crypto/wal.rs
|
||
./src/daemon/cache.rs
|
||
./src/daemon/mod.rs
|
||
./src/daemon/query.rs
|
||
./src/daemon/server.rs
|
||
./src/ipc.rs
|
||
./src/main.rs
|
||
./src/scanner/linux.rs
|
||
./src/scanner/macos.rs
|
||
./src/scanner/mod.rs
|
||
./src/scanner/windows.rs
|
||
./src/transport/mod.rs
|
||
|
||
=== Cargo.toml ===
|
||
[package]
|
||
name = "wx-cli"
|
||
version = "0.1.10"
|
||
edition = "2021"
|
||
description = "WeChat 4.x (macOS/Linux) local data CLI — decrypt SQLCipher DBs, query chat history, watch new messages"
|
||
license = "Apache-2.0"
|
||
repository = "https://github.com/jackwener/wx-cli"
|
||
keywords = ["wechat", "sqlcipher", "decrypt", "cli"]
|
||
categories = ["command-line-utilities"]
|
||
readme = "README.md"
|
||
|
||
[[bin]]
|
||
name = "wx"
|
||
path = "src/main.rs"
|
||
|
||
[dependencies]
|
||
# CLI
|
||
clap = { version = "4", features = ["derive"] }
|
||
|
||
# 异步
|
||
tokio = { version = "1", features = ["full"] }
|
||
|
||
# 序列化
|
||
serde = { version = "1", features = ["derive"] }
|
||
serde_json = "=1.0.140"
|
||
serde_yaml = "0.9"
|
||
|
||
# SQLite
|
||
rusqlite = { version = "0.31", features = ["bundled"] }
|
||
|
||
# 加密
|
||
aes = "0.8"
|
||
cbc = { version = "0.1", features = ["alloc"] }
|
||
hmac = "0.12"
|
||
sha2 = "0.10"
|
||
pbkdf2 = "0.12"
|
||
|
||
# 解压
|
||
zstd = "0.13"
|
||
|
||
# 错误处理
|
||
anyhow = "1"
|
||
|
||
# 时间
|
||
chrono = { version = "0.4", features = ["serde"] }
|
||
|
||
# 跨平台路径
|
||
dirs = "5"
|
||
|
||
# MD5 (联系人表名 Msg_<md5>)
|
||
md5 = "0.7"
|
||
|
||
# 正则表达式
|
||
regex = "1"
|
||
roxmltree = "0.20"
|
||
|
||
# IPC Windows named pipe(Unix 直接用 tokio::net::UnixListener)
|
||
[target.'cfg(windows)'.dependencies]
|
||
interprocess = { version = "2", features = ["tokio"] }
|
||
|
||
[target.'cfg(unix)'.dependencies]
|
||
libc = "0.2"
|
||
|
||
[target.'cfg(target_os = "windows")'.dependencies]
|
||
windows = { version = "0.58", features = [
|
||
"Win32_System_Diagnostics_Debug",
|
||
"Win32_System_Diagnostics_ToolHelp",
|
||
"Win32_System_Threading",
|
||
"Win32_Foundation",
|
||
"Win32_System_Memory",
|
||
] }
|
||
|
||
[profile.release]
|
||
opt-level = 3
|
||
lto = true
|
||
codegen-units = 1
|
||
strip = true
|
||
|
||
=== src/main.rs - CLI structure ===
|
||
mod config;
|
||
mod ipc;
|
||
mod crypto;
|
||
mod scanner;
|
||
mod daemon;
|
||
mod cli;
|
||
pub mod transport;
|
||
|
||
fn main() {
|
||
if std::env::var("WX_DAEMON_MODE").is_ok() {
|
||
daemon::run();
|
||
} else {
|
||
cli::run();
|
||
}
|
||
}
|
||
|
||
=== src/daemon/ - all files ===
|
||
total 112
|
||
drwxrwxrwx 1 david david 4096 May 13 13:32 .
|
||
drwxrwxrwx 1 david david 4096 May 13 13:44 ..
|
||
-rwxrwxrwx 1 david david 7309 May 13 13:32 cache.rs
|
||
-rwxrwxrwx 1 david david 6034 May 13 13:55 mod.rs
|
||
-rwxrwxrwx 1 david david 91997 May 13 13:32 query.rs
|
||
-rwxrwxrwx 1 david david 3820 May 13 13:55 server.rs
|
||
|
||
=== src/transport/ - all files ===
|
||
total 12
|
||
drwxrwxrwx 1 david david 4096 May 13 13:44 .
|
||
drwxrwxrwx 1 david david 4096 May 13 13:44 ..
|
||
-rwxrwxrwx 1 david david 9555 May 13 13:45 mod.rs
|
||
|
||
=== src/lib.rs ===
|