Skip to content

alexsavio/quickwit-cli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Quickwit Playground

A ready-to-use development environment for exploring Quickwit, a cloud-native search engine for observability data. This project includes Docker setup, tutorial automation, and a Rust CLI client.

Features

  • 🐳 Docker Compose setup for Quickwit
  • 📚 Automated quickstart tutorial (Stack Overflow dataset)
  • 🦀 Rust CLI client for querying Quickwit
  • ⚡ Just task runner for common operations

Prerequisites

  • Docker and Docker Compose
  • just command runner
  • direnv (optional, for auto-loading environment)
  • Rust (for the CLI client)
  • jq (for JSON formatting)

Quick Start

# Allow direnv to load environment variables
direnv allow

# Start Quickwit server
just up

# Run the complete tutorial (creates index, ingests data, runs search)
just tutorial

# Open the Quickwit UI
just ui  # Opens http://localhost:7280

Project Structure

.
├── .editorconfig           # Editor configuration for consistent formatting
├── .env                    # Environment variables (Quickwit config)
├── .envrc                  # direnv configuration
├── .gitignore              # Git ignore rules
├── docker-compose.yml      # Quickwit container definition
├── justfile                # Main task runner commands
├── config/                 # Quickwit configuration files
│   ├── quickwit.yaml       # Quickwit node configuration
│   └── stackoverflow-*.yaml # Index configurations
├── qwdata/                 # Quickwit data directory (gitignored)
└── quickwit-cli/           # Rust CLI client sub-project
    ├── Cargo.toml          # Rust dependencies
    ├── justfile            # CLI-specific tasks
    └── src/                # Rust source code

Available Commands

Docker & Server

Command Description
just up Start Quickwit server
just down Stop Quickwit server
just logs View container logs
just restart Restart the server
just clean Remove containers and data

Tutorial

Command Description
just tutorial Run complete quickstart tutorial
just setup-index Download config and create index
just ingest Ingest sample data
just search Run sample search query
just delete-index Delete the stackoverflow index

Search Queries

Command Description
just search-query "your query" Search with custom query
just search-tags Get popular tags aggregation
just list-indexes List all indexes

Rust CLI

Command Description
just cli-build Build the CLI in release mode
just cli-check Run format, lint, and tests
just cli-indexes List indexes via CLI
just cli-search "query" Search via CLI
just cli-version Show server version via CLI

For more CLI commands: just -f quickwit-cli/justfile --list

Rust CLI Client

The quickwit-cli sub-project is a full-featured Rust client for Quickwit:

cd quickwit-cli

# Build
just build-release

# Run searches
just search "python OR java"
just search-json "search engine"

# Check code quality
just check  # runs fmt, clippy, test

CLI Usage

# Direct usage
cargo run -- --help
cargo run -- index list
cargo run -- search --index stackoverflow "rust programming"
cargo run -- search --index stackoverflow --json --max-hits 5 "python"

# Or install globally
cargo install --path quickwit-cli
quickwit-cli index list

Environment Variables

Variable Default Description
QUICKWIT_VERSION 0.8.1 Quickwit Docker image version
QUICKWIT_HTTP_PORT 7280 HTTP API port
QUICKWIT_GRPC_PORT 7281 gRPC port
QUICKWIT_DATA_DIR ./qwdata Data directory
RUST_LOG quickwit=info Log level

Resources

License

MIT

About

A quickwit CLI tool in Rust

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published