Skip to main content

rustferry_ssh/
lib.rs

1//! Hardened OpenSSH transport for named `RustFerry` macOS workers.
2//!
3//! The transport accepts only validated endpoint fields and always constructs
4//! one fixed OpenSSH command. A pinned host key is copied into an operation-owned
5//! trust snapshot; private-key bytes are never read or retained.
6
7#![forbid(unsafe_code)]
8
9/// Validated named SSH endpoint configuration.
10pub mod config;
11/// OpenSSH-backed full-duplex snapshot-session execution.
12mod process_session;
13/// Runtime-neutral SSH build-provider control plane.
14pub mod provider;
15/// Pure framed client for one SSH snapshot-build session.
16pub mod session;
17/// Fixed OpenSSH invocation and bounded process execution.
18pub mod transport;
19
20pub use config::{
21    SshConfigError, SshEndpointConfig, SshHost, SshHostKeySha256, SshRemoteName, SshUser,
22};
23pub use process_session::SshSnapshotSessionError;
24pub use provider::{SSH_PROVIDER_ID, SshBuildProvider, snapshot_required_features};
25pub use session::{
26    CreateOnlyArtifactSpool, SnapshotSessionClientError, SnapshotSessionOutcome,
27    SnapshotSessionRequest, run_snapshot_session,
28};
29pub use transport::{
30    MAX_SSH_REQUEST_BYTES, MAX_SSH_RESPONSE_BYTES, ProcessSshRunner, SSH_CONNECT_TIMEOUT_SECONDS,
31    SSH_OPERATION_TIMEOUT, SSH_SNAPSHOT_SESSION_TIMEOUT, SshInvocation, SshRunner,
32    SshTransportError, build_ssh_invocation, build_ssh_session_invocation,
33};