shell-tunnel 0.17.0

Ultra-lightweight remote shell gateway with a REST/WebSocket API
Documentation
//! Filesystem access, confined to a configured root.
//!
//! Placed at the crate root rather than under `security/` because the jail is
//! not a check that sits beside file access — it is the only way file access
//! happens. Filing it with the other validators would invite the reading that
//! it can be bypassed.

pub mod platform;
pub mod root;
pub mod sha256;
pub mod transfer;
pub mod tree;

pub use root::{FsError, FsRoot};
pub use transfer::{
    sweep_orphan_parts, sweep_orphan_parts_in, FinishedUpload, UploadError, UploadStore,
    DEFAULT_CHUNK_SIZE, MAX_CHUNK_SIZE, SESSION_TTL,
};
pub use tree::{remove_tree, TreeOutcome};

/// Directory under the root where in-flight uploads are staged.
///
/// Declared here rather than beside the upload store because two unrelated
/// callers need it — `list` must hide it, and the transfer layer must create it
/// — and a second copy of the name is a rename waiting to go wrong.
pub const UPLOAD_DIR: &str = ".shell-tunnel-uploads";