projects/agent/Cargo.toml

62 lines
1.5 KiB
TOML

[package]
name = "butterfly-agent"
version = "0.2.0"
edition = "2021"
description = "Butterfly Desktop Agent — captures display from a VM, encodes as H.264/JPEG, streams via WebSocket, receives and executes remote control commands"
[features]
default = ["h264"]
h264 = ["openh264"]
[dependencies]
# Async runtime
tokio = { version = "1", features = ["full"] }
# WebSocket client
tokio-tungstenite = { version = "0.24", features = ["connect"] }
futures-util = "0.3"
# Screen capture (DXGI on Windows, X11 on Linux, CoreGraphics on macOS)
scrap = "0.5"
# Input simulation (SendInput on Windows, XTest on Linux, CGEvent on macOS)
enigo = "0.2"
# Image encoding (JPEG fallback)
image = "0.25"
# H.264 encoding (Cisco OpenH264 — software, cross-platform, ~5-15ms encode)
openh264 = { version = "0.6", optional = true }
# Conditional compilation
cfg-if = "1"
# Serialization
serde = { version = "1", features = ["derive"] }
serde_json = "1"
# CLI argument parsing
clap = { version = "4", features = ["derive"] }
# Logging
log = "0.4"
env_logger = "0.11"
# UUID for agent identification
uuid = { version = "1", features = ["v4"] }
# Error handling
anyhow = "1"
# HTTP client (for REST API session creation)
reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls"] }
# Windows service support (only compiled on Windows)
[target.'cfg(windows)'.dependencies]
windows-service = "0.7"
[profile.release]
opt-level = 3
lto = true
codegen-units = 1