Skip to content

agnosticeng/agx

Repository files navigation

agx

agx is a desktop application built with Tauri and SvelteKit that provides a modern interface for exploring and querying data using ClickHouse's embedded database engine (chdb).

Features

  • Native desktop application performance with web technologies
  • Interactive SQL query editor with syntax highlighting
  • Schema browser for exploring data structure
  • Results displayed in a tabular format
  • Support for drag & drop file operations
  • Cross-platform compatibility (macOS, Linux, Windows)

Prerequisites

  • Node.js (v16 or later)
  • Rust toolchain
  • System dependencies for Tauri

Getting Started

  1. Clone the repository:
git clone https://github.com/agnosticeng/agx
cd agx
  1. Download and setup chdb library:
./src-tauri/update_libchdb.sh
  1. Install dependencies:
npm install
  1. Run in development mode:
npm run tauri dev
  1. Build for production:
npm run tauri build

Project Structure

agx/
├── src/                 # Frontend source code (SvelteKit)
│   ├── lib/             # Shared components
│   └── routes/          # Application routes
├── src-tauri/           # Backend source code (Rust)
│   ├── src/             # Rust source files
│   └── Cargo.toml       # Rust dependencies
├── package.json         # Node.js dependencies
└── README.md

Installing Agnostic UDF

Install Agnostic ClickHouse UDFs with a single command:

curl -fsSL https://raw.githubusercontent.com/agnosticeng/agx/main/scripts/install_agnostic_udfs.sh | sh

Development

  • The frontend is built with SvelteKit, offering a reactive and efficient UI
  • The backend uses Tauri with Rust, providing native performance and security
  • Communication between frontend and backend happens through Tauri's IPC bridge
  • Data querying is handled by chdb, an embedded ClickHouse engine

Contributing

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

License

This project is licensed under the MIT License - see the LICENSE file for details.

The MIT License is one of the most popular open-source licenses because it:

  • Is simple and permissive
  • Allows commercial use
  • Allows modification and distribution
  • Allows private use
  • Has minimal restrictions
  • Is compatible with many other licenses