athena-cli

Crates.ioathena-cli
lib.rsathena-cli
version0.3.1
created_at2025-02-27 11:04:36.922581+00
updated_at2025-04-17 07:29:50.744758+00
descriptionA command-line interface for AWS Athena with interactive query execution and result management
homepage
repositoryhttps://github.com/Andyhoang/athena-cli
max_upload_size
id1571609
size1,175,813
Andy Hoang (AndyHoang)

documentation

https://github.com/Andyhoang/athena-cli#readme

README

AWS Athena CLI

Build status Crates.io Packaging status Crates.io License: MIT Docs

A command-line interface tool written in Rust for interacting with AWS Athena, providing a streamlined experience similar to the Athena web console.

Athena CLI Demo

Purpose

  • Execute SQL queries against AWS Athena databases
  • List and manage workgroups
  • View query history and results
  • Manage databases and tables
  • Save frequently used queries

Installation

  1. Ensure you have Rust installed (1.70 or later)
  2. Clone this repository
  3. Run cargo install --path .
  4. Copy config.example.toml to ~/.config/athena-cli/config.toml and update with your settings

Usage

Basic commands:

  • athena-cli query "SELECT * FROM table" - Execute a query
  • athena-cli database list - List available databases
  • athena-cli table list - List tables in a database
  • athena-cli table describe <table-name> - Describe table structure
  • athena-cli workgroup list - List available workgroups
  • athena-cli history - Show recent queries
  • athena-cli inspect <query-id> - Show detailed information about a query
  • athena-cli inspect <query-id> -o <path> - Inspect query and download results
  • athena-cli download <query-id> - Download query results (shortcut for inspect with download)

Configuration

For configuration, edit ~/.config/aws-athena-cli/config.toml to set:

  • Default workgroup
  • Output location
  • AWS credentials (if not using AWS CLI configuration)

Requirements

  • AWS account with Athena access
  • Configured AWS credentials
  • Rust 1.70+

For detailed documentation and examples, see the Documentation.

Milestones

Completed ✅

  • Authorize athena with SSO profile and ENV variables
  • Basic query execution with AWS Athena
  • Configuration management with TOML config file
  • Query result caching and reuse
  • Polars integration for DataFrame handling
  • Get detail a history query
  • Database schema exploration

Coming Soon 🚀

  • Custom output formatting
  • Export results to various formats
  • Query history tracking
  • Test cases

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Development Setup

  1. Clone the repository
  2. Install pre-commit hooks to ensure code quality:
    pip install pre-commit
    pre-commit install
    

The pre-commit hooks will automatically:

  • Format your code with cargo fmt
  • Run cargo check to ensure compilation
  • Fix common issues with cargo clippy --fix
  • Check for other issues like trailing whitespace, YAML/TOML format, etc.
Commit count: 69

cargo fmt