Skip to main content

Crate afar

Crate afar 

Source
Expand description

afar — operate shells from afar.

afar adds working backends to elegance::MultiTerminal: a local shell over a PTY, and remote sessions over SSH. The widget you actually show in your egui app is LiveMultiTerminal, a thin wrapper that owns one or more backends and pumps bytes between them and the existing line-buffered scrollback model.

See terminal_crate_plan.md in the repo root for the full design.

Re-exports§

pub use backend::BackendEvent;
pub use backend::BackendHandle;
pub use backend::CloseReason;
pub use backend::TerminalBackend;
pub use backend::TerminalStatus;
pub use backend::local::LocalShell;
pub use backend::ssh::Decision;
pub use backend::ssh::HostKeyMismatch;
pub use backend::ssh::HostKeyPolicy;
pub use backend::ssh::MismatchCallback;
pub use backend::ssh::SshAuth;
pub use backend::ssh::SshConfig;
pub use backend::ssh::SshSession;

Modules§

ansi
Line-mode ANSI handling: SGR → LineKind matcher and CSI/OSC stripper.
backend
Backend trait and the UI-facing facade.
runtime
Process-singleton tokio runtime owned by the crate.

Structs§

LiveMultiTerminal
Multi-pane terminal widget driven by real backends.
LiveMultiTerminalControls
Restricted view of the inner MultiTerminal. See §4 of the plan.

Enums§

OverflowPolicy
Policy for what to drop when a pane’s output ring buffer fills.