[package]
edition = "2024"
rust-version = "1.95"
name = "ssh-commander-core"
version = "0.2.0"
authors = ["Andreas Mueller <herban.mueller@gmail.com>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Async Rust domain layer for SSH, SFTP, FTP/FTPS, PostgreSQL, and connection management — the engine behind midnight-ssh."
homepage = "https://github.com/asmuelle/ssh-commander-core"
documentation = "https://docs.rs/ssh-commander-core"
readme = "README.md"
keywords = [
"ssh",
"sftp",
"ftp",
"postgres",
"tunnel",
]
categories = [
"network-programming",
"database",
"asynchronous",
"authentication",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/asmuelle/ssh-commander-core"
resolver = "2"
[features]
default = [
"ssh",
"sftp",
"ftp",
"desktop",
"tools",
"postgres",
]
desktop = []
ftp = [
"dep:suppaftp",
"dep:async-std",
]
postgres = ["dep:ssh-commander-pg"]
sftp = ["ssh"]
ssh = [
"dep:russh",
"dep:russh-keys",
"dep:russh-sftp",
]
tools = ["ssh"]
[lib]
name = "ssh_commander_core"
path = "src/lib.rs"
[[test]]
name = "ssh_sftp_integration"
path = "tests/ssh_sftp_integration.rs"
[dependencies.anyhow]
version = "1"
[dependencies.async-std]
version = "1"
optional = true
[dependencies.async-trait]
version = "0.1"
[dependencies.chrono]
version = "0.4"
features = ["clock"]
default-features = false
[dependencies.dirs]
version = "5"
[dependencies.futures]
version = "0.3"
[dependencies.rand]
version = "0.8"
[dependencies.russh]
version = "0.43"
features = [
"openssl",
"vendored-openssl",
]
optional = true
[dependencies.russh-keys]
version = "0.43"
features = ["vendored-openssl"]
optional = true
[dependencies.russh-sftp]
version = "2"
optional = true
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.ssh-commander-keychain]
version = "0.2.0"
[dependencies.ssh-commander-pg]
version = "0.2.0"
optional = true
[dependencies.suppaftp]
version = "6"
features = ["async-native-tls"]
optional = true
[dependencies.thiserror]
version = "2"
[dependencies.tokio]
version = "1"
features = ["full"]
[dependencies.tokio-util]
version = "0.7"
[dependencies.tracing]
version = "0.1"
[dev-dependencies.proptest]
version = "1"
[dev-dependencies.tempfile]
version = "3"