Thanks to visit codestin.com
Credit goes to lib.rs

2 releases

new 0.1.1 Jan 20, 2026
0.1.0 Jan 20, 2026

#2327 in Database interfaces

Apache-2.0

130KB
2.5K SLoC

AegisDB Logo

aegis-cli

License Rust Version AegisDB

Command-line interface for the Aegis Database Platform.

Overview

aegis-cli provides a powerful command-line tool for interacting with Aegis databases. It supports interactive queries, data import/export, and administrative operations.

Features

  • Interactive Shell - REPL for SQL queries
  • Query Execution - Run queries from command line or files
  • Data Import/Export - CSV, JSON, and SQL formats
  • Admin Commands - Cluster and node management
  • Output Formats - Table, JSON, CSV output

Installation

The CLI is installed automatically with Aegis:

./install.sh

Or build manually:

cargo build -p aegis-cli --release

Usage

Basic Commands

# Start interactive shell
aegis shell

# Execute a query
aegis query "SELECT * FROM users"

# Execute from file
aegis query -f queries.sql

# Connect to specific server
aegis --host localhost --port 9090 shell

Command Reference

aegis [OPTIONS] <COMMAND>

Commands:
  shell       Start interactive SQL shell
  query       Execute a SQL query
  import      Import data from file
  export      Export data to file
  status      Show cluster status
  help        Print help

Options:
  -h, --host <HOST>    Server host [default: localhost]
  -p, --port <PORT>    Server port [default: 9090]
  -u, --user <USER>    Username
  -P, --password       Prompt for password
  -f, --format <FMT>   Output format: table, json, csv [default: table]
      --help           Print help

Interactive Shell

$ aegis shell
Connected to Aegis v2.0.0 at localhost:9090

aegis> SELECT * FROM users LIMIT 5;
┌────┬─────────┬─────────────────────┐
 id │ name    │ email               │
├────┼─────────┼─────────────────────┤
 1  │ Alice   │ [email protected]
 2  │ Bob     │ [email protected]
 3  │ Charlie │ [email protected]
└────┴─────────┴─────────────────────┘
3 rows (0.012s)

aegis> \help
Available commands:
  \help       Show this help
  \tables     List all tables
  \describe   Describe a table
  \format     Change output format
  \quit       Exit the shell

aegis> \quit
Goodbye!

Data Import

# Import CSV
aegis import users.csv --table users --format csv

# Import JSON
aegis import users.json --table users --format json

# Import with options
aegis import data.csv \
  --table users \
  --format csv \
  --delimiter ";" \
  --header true \
  --batch-size 1000

Data Export

# Export to CSV
aegis export "SELECT * FROM users" -o users.csv --format csv

# Export to JSON
aegis export "SELECT * FROM users" -o users.json --format json

# Export entire table
aegis export --table users -o backup.csv

Admin Commands

# Cluster status
aegis status

# Node information
aegis status --nodes

# Detailed stats
aegis status --verbose

Configuration

Create ~/.aegis/config.toml:

[connection]
host = "localhost"
port = 9090
user = "admin"

[shell]
history_file = "~/.aegis/history"
history_size = 1000
prompt = "aegis> "

[output]
format = "table"
max_width = 120
null_string = "NULL"

Environment Variables

Variable Description
AEGIS_HOST Server host
AEGIS_PORT Server port
AEGIS_USER Username
AEGIS_PASSWORD Password

Examples

# One-liner query with JSON output
aegis query "SELECT * FROM metrics WHERE time > NOW() - INTERVAL '1 hour'" -f json

# Pipe query from stdin
echo "SELECT COUNT(*) FROM users" | aegis query

# Export with compression
aegis export --table logs -o logs.csv.gz --compress

# Batch insert from file
cat inserts.sql | aegis query

License

Apache-2.0

Dependencies

~13–19MB
~254K SLoC