russh building

This commit is contained in:
EthanShoeDev
2025-09-13 22:21:34 -04:00
parent 4ca74f4ea2
commit 1b863d5560
3 changed files with 186 additions and 72 deletions

View File

@@ -15,33 +15,36 @@ uniffi = { workspace = true, features = ["tokio"] }
# Lightweight error enum derive for FFI-safe error reporting.
thiserror = "1.0.64"
# # Tokio async runtime + IO bits. We use:
# # - rt-multi-thread : multithreaded scheduler
# # - macros : attribute macros (if you ever need #[tokio::test], etc.)
# # - time : timers/sleeps
# # - net : sockets; russh uses this
# # - sync : async Mutex, channels, etc.
# # - io-util : AsyncRead/Write extension traits (write_all/flush)
# tokio = { version = "1.47.1", features = ["rt-multi-thread", "macros", "time", "net", "sync", "io-util"] }
# Tokio async runtime + IO bits. We use:
# - rt-multi-thread : multithreaded scheduler
# - macros : attribute macros (if you ever need #[tokio::test], etc.)
# - time : timers/sleeps
# - net : sockets; russh uses this
# - sync : async Mutex, channels, etc.
# - io-util : AsyncRead/Write extension traits (write_all/flush)
tokio = { version = "1.47.1", features = ["rt-multi-thread", "macros", "time", "net", "sync", "io-util"] }
# # Common async ecosystem utilities (not strictly required by our code, but
# # frequently useful and pulled in by transitive deps).
# bytes = "1.10.1"
# futures = "0.3.31"
# Common async ecosystem utilities (not strictly required by our code, but
# frequently useful and pulled in by transitive deps).
bytes = "1.10.1"
futures = "0.3.31"
# # SSH client and keys. `russh` is the client; `russh-keys` handles key types,
# # generation, and OpenSSH (PEM) encoding/decoding.
# SSH client and keys. `russh` is the client; `russh-keys` handles key types,
# generation, and OpenSSH (PEM) encoding/decoding.
# By default russh pulls in aws-lc which requires CMake toolchain. 'ring' is a rust based alternative.
# 'flate2' is a compression library.
# 'rsa' is a RSA encryption library.
russh = { version = "0.54.3", default-features = false, features = ["ring", "flate2", "rsa"] }
russh-keys = "0.49.2"
# # Secure RNG for key generation (OsRng).
# rand = "0.8"
# Secure RNG for key generation (OsRng).
rand = "0.8"
# # Handy but currently optional; you can remove it if unused.
# once_cell = "1.21.3"
# Handy but currently optional; you can remove it if unused.
once_cell = "1.21.3"
# # Optional helper for async trait impls; safe to keep even if unused.
# async-trait = "0.1"
# Optional helper for async trait impls; safe to keep even if unused.
async-trait = "0.1"
# ──────────────────────────────────────────────────────────────────────────────
# Build-time codegen for UniFFI