mirror of
https://github.com/EthanShoeDev/fressh.git
synced 2026-01-11 14:22:51 +00:00
66 lines
3.5 KiB
TOML
66 lines
3.5 KiB
TOML
[package]
|
|
name = "uniffi-russh"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
|
|
# ──────────────────────────────────────────────────────────────────────────────
|
|
# Runtime + FFI + SSH deps
|
|
# ──────────────────────────────────────────────────────────────────────────────
|
|
[dependencies]
|
|
# UniFFI runtime (from your workspace). The `tokio` feature enables
|
|
# the `#[uniffi::export(async_runtime = "tokio")]` path so async Rust fns
|
|
# surface as Promises on the JS side.
|
|
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"] }
|
|
|
|
# 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"
|
|
base64 = "0.22"
|
|
ed25519-dalek = "2"
|
|
|
|
# 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"
|
|
|
|
# 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"
|
|
|
|
# ──────────────────────────────────────────────────────────────────────────────
|
|
# Build-time codegen for UniFFI
|
|
# ──────────────────────────────────────────────────────────────────────────────
|
|
[build-dependencies]
|
|
# UniFFI build helper to generate bindings at compile time.
|
|
uniffi = { workspace = true, features = ["build"] }
|
|
|
|
# ──────────────────────────────────────────────────────────────────────────────
|
|
# Library outputs
|
|
# ──────────────────────────────────────────────────────────────────────────────
|
|
[lib]
|
|
# - cdylib : C-compatible dynamic library (Android/iOS; what RN/JSI loads)
|
|
# - staticlib: Static archive (useful for iOS static linking)
|
|
# - lib : Normal Rust rlib (unit tests, internal usage)
|
|
crate-type = ["cdylib", "staticlib", "lib"]
|