Skip to main content

Crate aws_ssm_bridge

Crate aws_ssm_bridge 

Source
Expand description

§AWS SSM Bridge

A high-performance Rust library implementing the AWS Systems Manager (SSM) Session Manager protocol with first-class Python bindings.

§Architecture Philosophy

Flat module structure - Following Rust best practices (tokio, serde, reqwest):

  • Direct module access without deep nesting
  • Clear naming makes deep hierarchies unnecessary
  • The crate boundary provides encapsulation

§Module Organization

§Public API (re-exported at crate root)

§Public Modules (for advanced usage)

  • errors - Domain-specific error types with retry classification
  • protocol - SSM protocol message types and framing
  • session - Session management internals
  • retry - Exponential backoff and circuit breaker patterns

§Internal Modules (implementation details)

  • connection - WebSocket connection lifecycle
  • channels - Channel multiplexing for stdin/stdout/stderr

§Usage

use aws_ssm_bridge::{SessionConfig, SessionManager};
use futures::StreamExt;

// Create session manager
let manager = SessionManager::new().await?;

// Start a session
let mut session = manager.start_session(SessionConfig {
    target: "i-1234567890abcdef0".to_string(),
    ..Default::default()
}).await?;

// Stream output
let mut output = session.output();
tokio::spawn(async move {
    while let Some(data) = output.next().await {
        print!("{}", String::from_utf8_lossy(&data));
    }
});

// Send commands
session.send(bytes::Bytes::from("ls -la\n")).await?;

// Clean shutdown
session.terminate().await?;

§Disclaimer

This project is not affiliated with, endorsed by, or sponsored by Amazon Web Services, Inc. or any of its affiliates.

Re-exports§

pub use session::Session;
pub use session::SessionConfig;
pub use session::SessionManager;
pub use session::SessionState;
pub use builder::SessionBuilder;
pub use errors::Error;
pub use errors::Result;
pub use protocol::MessageType;
pub use protocol::SessionType;
pub use retry::CircuitBreaker;
pub use retry::CircuitState;
pub use retry::RetryConfig;
pub use retry::RetryStrategy;
pub use rate_limit::RateLimitConfig;
pub use rate_limit::RateLimitResult;
pub use rate_limit::RateLimiter;
pub use port_forward::PortForwardConfig;
pub use port_forward::PortForwarder;
pub use terminal::Terminal;
pub use terminal::TerminalConfig;
pub use terminal::TerminalInput;
pub use terminal::TerminalSize;
pub use interactive::InteractiveConfig;
pub use interactive::InteractiveShell;
pub use metrics::register_metrics;
pub use metrics::MetricsRecorder;
pub use shutdown::install_signal_handlers;
pub use shutdown::ShutdownGuard;
pub use shutdown::ShutdownSignal;
pub use pool::PoolConfig;
pub use pool::PoolStats;
pub use pool::SessionPool;
pub use reconnect::ReconnectConfig;
pub use reconnect::ReconnectEvent;
pub use reconnect::ReconnectStats;
pub use reconnect::ReconnectingSession;
pub use tracing_ext::span_connection;
pub use tracing_ext::span_handshake;
pub use tracing_ext::span_receive;
pub use tracing_ext::span_send;
pub use tracing_ext::span_session;
pub use tracing_ext::SessionSpan;
pub use tracing_ext::TraceContext;

Modules§

ack
Acknowledgment and retransmission with RTT tracking Acknowledgment and retransmission system with RTT tracking.
binary_protocol
Binary protocol implementation (AWS-compatible) AWS SSM Session Manager Binary Protocol Implementation
builder
Session builder for fluent API Session builder for ergonomic session creation
documents
Type-safe SSM document definitions Type-safe AWS SSM document definitions
errors
Error types and result aliases Error types for aws-ssm-bridge
handshake
AWS SSM handshake protocol (3-phase) AWS SSM Handshake Protocol Implementation
interactive
Interactive shell sessions with full terminal support Interactive shell session combining terminal handling with SSM protocol.
metrics
Metrics and observability hooks Metrics and observability hooks for production monitoring.
pool
Session pool for managing multiple concurrent sessions Session pool for managing multiple concurrent SSM sessions.
port_forward
Port forwarding implementation Port forwarding implementation for SSM sessions
protocol
SSM protocol message types and framing SSM Protocol message types and framing
rate_limit
Token bucket rate limiting for DoS protection Token bucket rate limiting for DoS protection.
reconnect
Session reconnection with exponential backoff Session reconnection utilities for handling network interruptions.
retry
Retry logic with exponential backoff and circuit breaker Error recovery and retry logic with exponential backoff
session
Session management and lifecycle Session management and lifecycle
shutdown
Graceful shutdown utilities Graceful shutdown utilities.
terminal
Cross-platform terminal handling for interactive shells Cross-platform terminal handling for interactive shell sessions.
tracing_ext
Structured tracing for distributed observability Structured tracing extensions for distributed observability.

Structs§

OutputStream
Stream of output data.

Constants§

MAX_PAYLOAD_SIZE
Maximum message payload size (10MB)
VERSION
Library version