Skip to content

davidbayo10/bridgio

Repository files navigation

bridgio

CI Crates.io License: MIT

Terminal UI for exploring AWS SNS topics and SQS queues.

Built with Rust, ratatui, and the AWS SDK — browse messaging infrastructure across multiple profiles and regions from your terminal.

Install

cargo install bridgio

Or build from source:

cargo build --release
./target/release/bridgio

Features

  • Browse SQS queues with message counts (visible, in-flight, delayed)
  • Browse SNS topics with subscription counts
  • Detailed attribute views for individual queues and topics
  • SQS queue insights with CloudWatch-backed drain, ETA, age, and pressure signals
  • SNS → SQS subscription exploration with filter policies
  • Visual dependency map showing topic-to-queue edges (ASCII tree)
  • Multi-profile and multi-region support (16 AWS regions)
  • Search and filter by name with friendly wildcards (*-dlq, prod-*, queue-??) and combined terms (prod *-dlq), sort by name or message count
  • Multi-select resources for dependency analysis
  • Copy context to clipboard in markdown format
  • Profile and region persistence across sessions

Requirements

  • Rust 2024 edition
  • AWS credentials configured in ~/.aws/config and/or ~/.aws/credentials

AWS Permissions

To use the application fully, the active AWS identity needs read-only access to SQS, SNS, and CloudWatch in the selected account and region.

Minimum permissions for the existing browse/detail flows:

  • sqs:ListQueues
  • sqs:GetQueueAttributes
  • sns:ListTopics
  • sns:GetTopicAttributes
  • sns:ListSubscriptions
  • sns:ListSubscriptionsByTopic
  • sns:GetSubscriptionAttributes

Additional permission for the SQS insight block in queue detail:

  • cloudwatch:GetMetricData

If cloudwatch:GetMetricData is missing, the queue detail still opens and raw SQS attributes still work, but the insights block will show partial/unavailable values and the status bar will display a warning.

Build & Run

cargo build --release
./target/release/bridgio

Keybindings

Global

Key Action
q Open quit confirmation
Ctrl+C Quit immediately
1 Switch to SQS list
2 Switch to SNS list
? Toggle help
p / P Open profile picker
r / R Open region picker
F5 Refresh
c Copy context to clipboard

List views

Key Action
/ k Cursor up
/ j Cursor down
Enter Open detail view
/ Start search (filter by name, supports * and ?)
s Cycle sort: Name → Messages ↓ → Messages ↑ (SQS only)
Space Toggle selection
m Open dependency map (requires selections)
x Clear all selections

Detail views

Key Action
Tab Switch focus between panels
/ k Scroll up
/ j Scroll down
Esc Back / cancel / close modal

Search mode

Key Action
Any character Append to query
Backspace Delete last character
Esc / Enter Exit search

Configuration

Profile discovery — Reads profiles from ~/.aws/config and ~/.aws/credentials. The default profile is always available.

Regions — 16 hardcoded AWS regions. Default: eu-west-1.

Persistence — Last used profile and region are saved to ~/.local/share/bridgio/state and restored on next launch.

Tech Stack

Crate Purpose
ratatui 0.30 TUI rendering framework
crossterm 0.29 Terminal control
tokio 1.50 Async runtime
aws-sdk-sqs 1.97 SQS client
aws-sdk-sns 1.98 SNS client
aws-config 1.8 AWS SDK configuration
anyhow 1.0 Error handling

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages