puressh 0.2.4

A pure-Rust SSH (Secure Shell) protocol library, in the spirit of libssh, built on purecrypto.
Documentation
//! SFTP v3 protocol implementation
//! ([draft-ietf-secsh-filexfer-02](https://datatracker.ietf.org/doc/html/draft-ietf-secsh-filexfer-02)).
//!
//! Pure-Rust and transport-agnostic. Both [`SftpClient`] and
//! [`SftpServerSession`] take any `Read+Write` — typically a channel
//! stream from the SSH connection layer running the `sftp` subsystem.
//!
//! # Layering
//!
//! - wire constants, [`Attrs`], [`FxpStatus`], [`SftpError`] — re-exported here;
//! - [`SftpServerSession`] — the server side;
//! - [`SftpClient`] — the client side.
//!
//! The packet codec, virtual-cwd path resolution and the `*@openssh.com`
//! extension tables are crate-private implementation details.

mod client;
#[cfg(feature = "server")]
pub(crate) mod extensions;
pub(crate) mod packet;
#[cfg(feature = "server")]
pub(crate) mod path;
#[cfg(feature = "server")]
mod server;
mod types;

#[cfg(all(test, feature = "server"))]
mod tests;

pub use client::SftpClient;
#[cfg(feature = "server")]
pub use server::{SftpServerOptions, SftpServerSession};
pub use types::{
    ATTR_ACMODTIME, ATTR_EXTENDED, ATTR_PERMISSIONS, ATTR_SIZE, ATTR_UIDGID, Attrs, FXF_APPEND,
    FXF_CREAT, FXF_EXCL, FXF_READ, FXF_TRUNC, FXF_WRITE, FxpStatus, NameEntry, SFTP_VERSION,
    SftpError,
};