# Quetty
<div align="center">
[](https://github.com/dawidpereira/quetty/releases/tag/v0.1.0)
[](#-development-phase)
[](https://www.rust-lang.org/)
[](https://azure.microsoft.com/en-us/products/service-bus)
[](#)
[](https://github.com/ratatui-org/ratatui)
[](https://opensource.org/licenses/MIT)
</div>
A powerful terminal-based Azure Service Bus queue manager that provides an intuitive interface for viewing, managing, and interacting with message queues efficiently.
<div align="center">
<img src="assets/quetty-logo-only-transparent.png" alt="Quetty Logo" width="320" height="320">
</div>
<div align="center">
<img src="assets/quetty-text-only-transparent.png" alt="Quetty" width="640">
</div>
## Table of Contents
- [Overview](#overview)
- [Interface Preview](#interface-preview)
- [Key Features](#key-features)
- [Installation](#installation)
- [Development](#development)
- [Documentation](#documentation)
- [Roadmap](#roadmap)
- [Acknowledgments](#acknowledgments)
- [License](#license)
## Overview
Quetty combines the power of Azure Service Bus with a sleek terminal interface, making queue management accessible and efficient. Whether you're debugging message flows, managing dead letter queues, or performing bulk operations, Quetty provides the tools you need in a fast, keyboard-driven environment.
## ๐ง Development Phase
**Quetty is currently in Beta**
We are actively developing and testing Quetty to ensure it meets production standards. During this phase, we're focusing on:
- โ
**Installation Methods**: Multiple installation options including nightly builds and source compilation
- โณ **Configuration System**: Implementing a fully working configuration system with easy setup for binary installations
- โณ **Action Verification**: Adding deep verification for destructive operations (like delete actions) to prevent accidental data loss
While Quetty is functional and actively used in development environments, please exercise caution when using it in production scenarios. We recommend thorough testing in your specific environment before deploying to production systems.
### ๐งช Beta Testing
Want to participate in beta testing? We'd love your feedback! Contact us via:
- **GitHub Issues**: [Open an issue](https://github.com/dawidpereira/quetty/issues) for bug reports and feature requests
- **Email**: <pereiradawid@outlook.com>
- **LinkedIn**: [www.linkedin.com/in/pereiradawid](https://www.linkedin.com/in/pereiradawid)
Your testing and feedback help us build a better tool for the entire Azure Service Bus community.
## Interface Preview
### ๐ฅ Live Demo
See Quetty in action with this interactive demo showcasing core features:
<https://github.com/user-attachments/assets/f52fb894-47a5-4287-b936-9e2b437a308a>
## Key Features
### ๐ **Message Management**
- **Smart Preview**: Automatically previews messages with syntax highlighting
- **Efficient Pagination**: Browse large queues with intelligent caching
- **Bulk Operations**: Delete, send, or manage multiple messages at once
- **Message Editing**: Edit and resend messages directly from the interface
### ๐ **Dead Letter Queue Support**
- **Seamless DLQ Navigation**: Switch between main and dead letter queues
- **Message Recovery**: Resend messages from DLQ back to main queue
- **Bulk DLQ Operations**: Handle multiple messages efficiently
### ๐ฏ **Azure Integration**
- **Multiple Auth Methods**: Device code, client credentials, connection strings
- **Azure Discovery**: Automatically discover subscriptions, resource groups, and namespaces
- **Queue Statistics**: Real-time queue metrics and health monitoring
### ๐ **Profile Management**
- **Multi-Environment Support**: Separate profiles for dev, staging, production
- **Profile Switching**: Quick environment switching with `--profile` flag
- **Secure Isolation**: Each profile has isolated configuration and credentials
- **Easy Setup**: Interactive setup wizard for each environment
### ๐จ **User Experience**
- **Intuitive Interface**: Keyboard-driven navigation with vim-like shortcuts
- **Customizable Themes**: Built-in themes (Catppuccin, Nightfox, Quetty) with custom theme support
- **Real-time Updates**: Instant feedback with smart state management
- **Comprehensive Help**: Context-aware help system
## Quick Start
### Prerequisites
- [Rust](https://rustup.rs/) (latest stable version)
- Azure Service Bus namespace with appropriate permissions
### Installation
#### Option 1: One-Line Installation ๐ (Recommended)
The fastest way to get Quetty running on any platform:
**Unix/Linux/macOS:**
```bash
**Windows PowerShell:**
```powershell
**What the installer does:**
- โ
Auto-detects your platform and architecture
- โ
Downloads the correct pre-built binary
- โ
Verifies SHA256 checksum for security
- โ
Installs to your PATH (`~/.local/bin` or system directory)
- โ
Ready to use immediately
**Advanced options:**
```bash
# Install specific version
# Install to custom directory
# System-wide installation (requires sudo)
# Install nightly build
# Preview what will be installed (dry run)
**Supported platforms:**
- Linux x64, macOS Intel/Apple Silicon, Windows x64/ARM64
#### Option 2: Homebrew ๐บ (macOS/Linux)
The recommended way for macOS and Linux users:
โ ๏ธ **Beta Release**: This installs the current beta version. Expect potential changes and updates before the stable release.
```bash
# Add the tap
brew tap dawidpereira/quetty
# Install quetty
brew install quetty
# Verify installation
quetty --version
```
**What you get:**
- โ
Automatic dependency management
- โ
Easy updates with `brew upgrade quetty`
- โ
Clean uninstall with `brew uninstall quetty`
- โ
Integration with system PATH
#### Option 3: Manual Download ๐ฆ
Download pre-built binaries from [GitHub Releases](https://github.com/dawidpereira/quetty/releases):
**Stable Releases** ๐ฏ (Production):
- **Download:** <https://github.com/dawidpereira/quetty/releases/latest>
- Available for: Linux x64, Windows x64/ARM64, macOS x64/ARM64
**Nightly Builds** ๐ (Latest features):
- **Download:** <https://github.com/dawidpereira/quetty/releases/tag/nightly-latest>
- โ ๏ธ Warning: May be unstable, not recommended for production
**Manual installation:**
```bash
# Linux/macOS
tar -xzf quetty-*-*.tar.gz
chmod +x quetty-*
mv quetty-* ~/.local/bin/quetty
# Windows
# Extract ZIP and move to PATH directory
# Verify checksums
sha256sum -c checksums.txt
```
#### Option 4: Build from Source ๐ง
For development or latest unreleased features:
```bash
git clone https://github.com/dawidpereira/quetty.git
cd quetty
cargo build --release
cp target/release/quetty ~/.local/bin/
```
### First Run
#### Interactive Setup (Recommended)
```bash
# Run the setup wizard
quetty --setup
# For specific environments, use profiles
quetty --profile dev --setup # Development environment
quetty --profile prod --setup # Production environment
```
#### Quick Start
```bash
# Default profile
quetty
# Specific profile
quetty --profile dev
quetty --profile staging
quetty --profile prod
```
On first launch, Quetty will guide you through the configuration process. For detailed setup instructions, see [INSTALLATION.md](docs/INSTALLATION.md).
### Basic Usage
1. **Configure Authentication**: Set up Azure AD or connection string authentication
2. **Select Namespace**: Choose your Service Bus namespace
3. **Pick a Queue**: Select the queue you want to manage
4. **Start Managing**: Use keyboard shortcuts to navigate and manage messages
> ๐ก **Tip**: Press `h` at any time to see available keyboard shortcuts and help.
### Profile Management
Quetty supports multiple profiles for different environments:
```bash
# Create profiles for different environments
quetty --profile dev --setup # Development environment
quetty --profile staging --setup # Staging environment
quetty --profile prod --setup # Production environment
# Switch between environments
quetty --profile dev # Use development profile
quetty --profile prod # Use production profile
quetty # Use default profile
# Show configuration directory
quetty --config-dir # Shows ~/.config/quetty
# Use custom config file
quetty --config ./my-config.toml # Custom configuration
```
## Development
For development setup and contribution guidelines, see [CONTRIBUTING.md](docs/CONTRIBUTING.md).
### Project Structure
- `ui/` - Terminal user interface (main application)
- `server/` - Core library for Azure Service Bus integration
- `themes/` - Built-in themes and theme definitions
## Documentation
### Getting Started
- **[Installation Guide](docs/INSTALLATION.md)** - Setup, profiles, and first-time configuration
- **[User Guide](docs/USER_GUIDE.md)** - Interface usage and message management
### Reference
- **[CLI Reference](docs/CLI_REFERENCE.md)** - Complete command-line options
- **[Configuration Reference](docs/CONFIGURATION.md)** - All configuration and authentication options
### Additional Resources
- **[Troubleshooting](docs/TROUBLESHOOTING.md)** - Common issues and solutions
- **[Contributing](docs/CONTRIBUTING.md)** - Development and contribution guidelines
## Roadmap
### Upcoming Features
- **Binary Releases**: Pre-built binaries for major platforms
- **Enhanced Bulk Operations**: Improved performance for large-scale operations
- **Message Templates**: Save and reuse common message patterns
- **Topic Support**: Full Azure Service Bus Topics and Subscriptions support
- **Advanced Filtering**: Search and filter messages by content, properties, and metadata
### Recent Additions
- โ
**Profile-Based Configuration**: Multi-environment support with isolated settings
- โ
**Enhanced Security**: Path traversal protection and input validation
- โ
**Performance Optimization**: Intelligent caching and reduced filesystem operations
- โ
**Complete Authentication Suite**: Device code, client credentials, connection strings
- โ
**Bulk Operations**: Multi-message delete, DLQ, and resend operations
- โ
**Theme System**: Customizable themes with built-in theme packs
- โ
**Message Editing**: Edit and resend messages with validation
- โ
**Azure Discovery**: Automatic resource discovery and selection
## Acknowledgments
Quetty is built on the shoulders of amazing open-source projects:
- **[Ratatui](https://github.com/ratatui-org/ratatui)** - A powerful Rust library for building rich terminal user interfaces
- **[tui-realm](https://github.com/veeso/tui-realm)** - An excellent framework for building stateful TUI applications
- **[Tokio](https://tokio.rs/)** - The asynchronous runtime for Rust
- **[Azure SDK for Rust](https://github.com/Azure/azure-sdk-for-rust)** - Azure service integrations
Special thanks to the maintainers and contributors of these projects for making terminal-based applications in Rust both powerful and enjoyable to develop.
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.