sunset_async/lib.rs
1//! Async for [Sunset SSH](sunset)
2//!
3//! [`SSHClient`] and [`SSHServer`] provide async-executor agnostic SSH
4//! implementations. These can be used on full-sized async platforms
5//! (Tokio, smol, etc) as well as on `no_std` embedded platforms such as
6//! [`embassy-executor`](https://docs.rs/embassy-executor).
7//!
8//! On std platforms some higher level functionality is in
9//! `sunset-stdasync` crate.
10//! [`embedded-io-adapters`](https://docs.rs/embedded-io-adapters)
11//! can be used for `Read` or `Write` traits with different async runtimes.
12
13#![cfg_attr(not(any(feature = "std", test)), no_std)]
14#![forbid(unsafe_code)]
15// avoid mysterious missing awaits
16#![deny(unused_must_use)]
17
18mod async_channel;
19mod async_sunset;
20mod client;
21mod server;
22
23pub use client::SSHClient;
24pub use server::SSHServer;
25
26pub use async_channel::{ChanIn, ChanInOut, ChanOut};
27
28pub use async_sunset::{ProgressHolder, SunsetMutex, SunsetRawMutex};