-
-
Notifications
You must be signed in to change notification settings - Fork 12
Expand file tree
/
Copy pathCargo.toml
More file actions
123 lines (111 loc) · 3.88 KB
/
Cargo.toml
File metadata and controls
123 lines (111 loc) · 3.88 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
[package]
name = "rustyclaw-core"
description = "Core library for RustyClaw — config, gateway protocol, secrets, tools, and shared types"
readme = "../../README.md"
keywords = ["ai", "agent", "llm", "openclaw", "automation"]
categories = ["development-tools", "text-processing"]
version.workspace = true
edition.workspace = true
authors.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true
rust-version.workspace = true
[lints]
workspace = true
[features]
default = ["web-tools"]
web-tools = ["dep:scraper", "dep:html2md"]
browser = ["dep:chromiumoxide"]
mcp = ["dep:rmcp", "dep:schemars"]
matrix = ["dep:matrix-sdk"]
whatsapp = ["dep:wa-rs", "dep:wa-rs-sqlite-storage", "dep:wa-rs-tokio-transport", "dep:wa-rs-ureq-http"]
ssh = ["dep:russh", "dep:russh-keys", "dep:rand_core", "dep:sha2"]
qr = ["dep:image"]
# CLI-based messengers (tier 1) - no heavy deps, just HTTP
signal-cli = []
matrix-cli = [] # Matrix CLI messenger using HTTP API (no external deps)
telegram-cli = []
discord-cli = []
slack-cli = []
# NOTE: matrix excluded from all-messengers due to matrix-sdk 0.16 recursion limit bug.
# Use `--features matrix` explicitly if needed.
all-messengers = ["whatsapp", "signal-cli", "matrix-cli", "telegram-cli", "discord-cli", "slack-cli"]
full = ["web-tools", "browser", "mcp", "all-messengers", "ssh"]
[dependencies]
serde.workspace = true
serde_json.workspace = true
serde_yaml.workspace = true
toml.workspace = true
anyhow.workspace = true
thiserror.workspace = true
rand.workspace = true
securestore.workspace = true
openssl-sys.workspace = true
totp-rs.workspace = true
qrcode.workspace = true
ssh-key.workspace = true
dirs.workspace = true
shellexpand.workspace = true
directories.workspace = true
tokio.workspace = true
tokio-util.workspace = true
async-trait.workspace = true
clap.workspace = true
futures-util.workspace = true
tokio-tungstenite.workspace = true
tokio-rustls.workspace = true
rustls-pemfile.workspace = true
reqwest.workspace = true
url.workspace = true
strum.workspace = true
sysinfo.workspace = true
which.workspace = true
glob.workspace = true
walkdir.workspace = true
urlencoding.workspace = true
pulldown-cmark.workspace = true
chrono.workspace = true
zip.workspace = true
tracing.workspace = true
tracing-subscriber.workspace = true
bincode.workspace = true
base64.workspace = true
regex.workspace = true
aho-corasick.workspace = true
oxidized-agentic-audit.workspace = true
ipnetwork.workspace = true
rusqlite.workspace = true
httpdate.workspace = true
colored.workspace = true
indicatif.workspace = true
unicode-width.workspace = true
rpassword.workspace = true
# Optional (browser only)
scraper = { workspace = true, optional = true }
html2md = { workspace = true, optional = true }
chromiumoxide = { workspace = true, optional = true }
# MCP (Model Context Protocol) client support
rmcp = { workspace = true, optional = true }
schemars = { workspace = true, optional = true }
# Messengers (optional - matrix can hit recursion limits on some compilers)
matrix-sdk = { workspace = true, optional = true }
wa-rs = { workspace = true, optional = true }
wa-rs-sqlite-storage = { workspace = true, optional = true }
wa-rs-tokio-transport = { workspace = true, optional = true }
wa-rs-ureq-http = { workspace = true, optional = true }
# SSH transport (optional)
russh = { version = "0.52", features = ["async-trait"], optional = true }
russh-keys = { version = "0.44", optional = true }
rand_core = { version = "0.6", optional = true }
sha2 = { version = "0.10", optional = true }
# QR code generation (optional)
image = { version = "0.25", default-features = false, features = ["png"], optional = true }
[target.'cfg(unix)'.dependencies]
libc = "0.2"
[target.'cfg(windows)'.dependencies]
windows-sys = { version = "0.59", features = ["Win32_System_Pipes", "Win32_Foundation"] }
[target.'cfg(target_os = "linux")'.dependencies]
landlock = "0.4"
[dev-dependencies]
tempfile = "3"