bssh-russh-sftp 2.3.0

Temporary fork of russh-sftp 2.3.0 adding pipelined SFTP File I/O (write_all_pipelined / read_to_writer_pipelined). These helpers hide per-request RTT for fast bulk transfers and are the only value-add over upstream russh-sftp.
Documentation
//! SFTP subsystem with client and server support for Russh and more!
//!
//! Crate can provide compatibility with anything that can provide the raw data
//! stream in and out of the subsystem channel.
//!
//! The client implementation contains:
//!
//! * Standard communication via [RawSftpSession](crate::client::RawSftpSession) which provides methods
//!   for sending and receiving a packet in place.
//! * [High level](crate::client::SftpSession) is similar to [`std::fs`] and has almost all the same
//!   implementations. Implements Async I/O for interaction with files. The main idea is to abstract
//!   from all the nuances and flaws of the SFTP protocol. This also takes into account the extension
//!   provided by the server provided by the server such as `limits@openssh.com` and `fsync@openssh.com`.
//!
//! You can find more examples in the repository.

#[macro_use]
extern crate log;
#[macro_use]
extern crate bitflags;
#[macro_use]
extern crate serde;

mod buf;
/// Client side
pub mod client;
pub mod de;
mod error;
pub mod extensions;
/// Protocol implementation
pub mod protocol;
pub mod ser;
/// Server side
#[cfg(not(target_arch = "wasm32"))]
pub mod server;
mod utils;