[package] name = "meatshell" version = "0.2.7" edition = "2021" authors = ["meatshell contributors"] description = "A lightweight FinalShell-style SSH/terminal client written in Rust + Slint" license = "MIT OR Apache-2.0" repository = "https://github.com/your/meatshell" readme = "README.md" rust-version = "1.75" [dependencies] slint = { version = "1.8", features = ["compat-1-2"] } # Direct access to the winit window/events (OS file-drop for drag-and-drop upload). i-slint-backend-winit = "1.16" serde = { version = "1", features = ["derive"] } serde_json = "1" anyhow = "1" thiserror = "1" directories = "5" chrono = { version = "0.4", features = ["serde"] } uuid = { version = "1", features = ["v4", "serde"] } tokio = { version = "1", features = ["rt-multi-thread", "macros", "sync", "io-util", "net", "time", "fs"] } russh = "0.49" russh-keys = "0.49" ssh-key = "0.6" tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter"] } rand = "0.8" async-trait = "0.1" futures = "0.3" vt100 = "0.15" unicode-width = "0.2" russh-sftp = "2" rfd = "0.15" arboard = "3" # Zeroes password buffers on drop so plaintext credentials don't linger in # freed heap memory (core dumps / debuggers / /proc/pid/mem). zeroize = "1" # SOCKS5 proxy tunnelling for SSH/SFTP in network-restricted environments. # (HTTP CONNECT proxies are handled in src/proxy.rs without an extra crate.) tokio-socks = "0.5" base64 = "0.22" urlencoding = "2" # Cross-platform serial port access for the Serial session type (#14, #17). # Opens COM3 / /dev/ttyUSB0 etc.; on Linux the default `libudev` feature is # used for port enumeration (CI installs libudev-dev). serialport = "4" # ChaCha20-Poly1305 AEAD for encrypting passwords at rest in sessions.json. # rand (OsRng) and base64 are already pulled in by other deps above. chacha20poly1305 = "0.10" # Detect whether the OS is running in dark or light mode. # Used on startup to honour the system preference before the user overrides it. dark-light = "1" # Runtime background image decoding/blur. Used for png/jpg/jpeg/webp user # backgrounds before handing pixels to Slint. image = { version = "0.25", default-features = false, features = ["png", "jpeg", "webp"] } # HTTP client for WebDAV sync. reqwest = { version = "0.12", default-features = false, features = ["rustls-tls", "json"] } # Decode the embedded PNG icon to set the window icon at runtime (Linux only). # On Windows the icon comes from the .ico embedded by winresource at link time; # on macOS it comes from the app bundle — neither needs runtime decoding. [build-dependencies] slint-build = "1.8" # Embeds assets/meatshell.ico into the .exe so Explorer / taskbar / shortcuts # show the app icon. Kept as an unconditional build-dependency because build.rs # runs on the host; Linux -> Windows cross builds still need this crate. winresource = "0.1" [profile.release] opt-level = 3 lto = "thin" codegen-units = 1 strip = "symbols" panic = "unwind" [profile.dev] opt-level = 1