-
Notifications
You must be signed in to change notification settings - Fork 12
Expand file tree
/
Copy pathCargo.toml
More file actions
100 lines (84 loc) · 2.63 KB
/
Cargo.toml
File metadata and controls
100 lines (84 loc) · 2.63 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
[package]
name = "native-devtools-mcp"
version = "0.10.0"
edition = "2021"
license = "MIT"
description = "MCP server for native app testing — screenshot, OCR, click, type, find_text, template matching. macOS, Windows & Android."
repository = "https://github.com/sh3ll3x3c/native-devtools-mcp"
keywords = ["mcp", "computer-use", "ui-automation", "android", "screenshot"]
categories = ["development-tools::testing", "accessibility"]
[features]
default = ["find_image_fast", "cdp"]
# Enable both SIMD and parallel optimizations for find_image
find_image_fast = ["find_image_simd", "find_image_parallel"]
find_image_simd = ["dep:wide"]
find_image_parallel = ["dep:rayon"]
cdp = ["dep:chromiumoxide"]
[dependencies]
# MCP SDK
rmcp = { version = "0.2", features = ["server", "transport-io", "macros"] }
tokio = { version = "1", features = ["full"] }
tokio-util = { version = "0.7", features = ["rt"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
# Image encoding
base64 = "0.22"
image = { version = "0.25", default-features = false, features = ["png", "jpeg"] }
# Temp files for screenshots
tempfile = "3"
# Logging
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
# Error handling
thiserror = "2"
# WebSocket client for app debug protocol
tokio-tungstenite = "0.24"
futures-util = "0.3"
url = "2.5"
# Binary verification (verify subcommand)
sha2 = "0.10.9"
ureq = "3"
# Optional dependencies for find_image optimization
rayon = { version = "1.10", optional = true }
wide = { version = "0.7", optional = true }
# CDP browser automation (optional, behind "cdp" feature)
chromiumoxide = { version = "0.9", optional = true, default-features = false }
# Android device control via ADB
adb_client = "3"
quick-xml = "0.39"
# macOS frameworks
[target.'cfg(target_os = "macos")'.dependencies]
core-graphics = "0.24"
core-foundation = "0.10"
cocoa = "0.26"
objc = "0.2"
# Windows dependencies
[target.'cfg(target_os = "windows")'.dependencies]
windows = { version = "0.58", features = [
"implement",
"Win32_Foundation",
"Win32_Graphics_Gdi",
"Win32_Graphics_Dwm",
"Win32_UI_WindowsAndMessaging",
"Win32_UI_Input_KeyboardAndMouse",
"Win32_UI_HiDpi",
"Win32_UI_Accessibility",
"Win32_System_Com",
"Win32_System_Threading",
"Win32_System_ProcessStatus",
"Win32_System_SystemServices",
"Graphics_Imaging",
"Media_Ocr",
"Storage_Streams",
"Foundation",
"Foundation_Collections",
]}
[lints.rust]
# Suppress cfg warnings from objc crate macros
unexpected_cfgs = "allow"
[dev-dependencies]
tempfile = "3"
criterion = "0.5"
[[bench]]
name = "find_image_bench"
harness = false