A fast, lightweight database IDE for developers.
One app for 17 database engines — SQL, NoSQL, graph, key-value, and analytics.
| SQL | Analytics | Document | Wide Column | Key-Value | Graph |
|---|---|---|---|---|---|
| PostgreSQL | Snowflake | MongoDB | Cassandra | Redis | Neo4j |
| MySQL | BigQuery | DynamoDB | ScyllaDB | ||
| MariaDB | ClickHouse | ||||
| SQLite | Redshift | ||||
| MSSQL | |||||
| CockroachDB |
Query Editor
- CodeMirror 6 with multi-dialect SQL highlighting (PostgreSQL, MySQL, SQLite, MSSQL, Cassandra)
- Schema-aware autocomplete (tables, columns, functions)
- Query formatting, comment toggle, error highlighting
- Multi-statement execution with multiple result sets
- Query history and saved queries
- EXPLAIN ANALYZE with visual tree view
- Query cancellation
Data Grid
- Virtual scrolling (100K+ rows)
- Inline cell editing (double-click), bulk edit mode with undo/redo
- Column sorting, filtering, resizing, reordering
- Row selection, multi-row delete, row insertion
- Type-aware editing (boolean checkbox, JSON textarea, NULL pill badges)
- Copy/paste, copy as CSV/JSON/INSERT/Markdown
- Context menu with filter-by-value
Schema Browser
- Expandable tree: schemas > tables > columns, views, functions, sequences, enums
- Table structure view with columns, indexes, foreign keys tabs
- DDL viewer (CREATE TABLE) with copy button
- Table creation, alteration, and index management GUIs with live DDL preview
- Search/filter within the tree
- Row count and table size stats
NoSQL Support
- MongoDB / DynamoDB: document browsing, JSON viewer, insert/update/delete
- Redis: type-aware viewer (string, list, set, hash, zset), scan/get/set/delete
- Neo4j: label browser, relationship types, node data grid
- Cassandra / ScyllaDB: CQL queries, schema browsing
Connection Management
- Connection groups/folders with color coding
- SSH tunneling (local port forwarding via russh)
- SSL certificates (CA, client cert, client key)
- OS keychain integration (macOS Keychain, Windows Credential Manager, Linux Secret Service)
- Connection URL parsing (
postgres://,mysql://,mongodb://,redis://,bolt://,sqlite:) - Connection pool tuning (pool size, idle timeout, acquire timeout)
- Connection duplication
Data Export & Import
- Export to CSV, JSON, SQL (INSERT statements), DDL
- Import from CSV with bulk loading
- Copy selected rows as CSV/JSON/INSERT/Markdown
Transaction Support
- BEGIN / COMMIT / ROLLBACK controls in the UI
- Supported for PostgreSQL, MySQL, MariaDB, SQLite, CockroachDB, Redshift
UI & UX
- Dark theme (default) and light theme (Catppuccin Latte) with toggle
- Tab system with drag-and-drop reordering, pinning, split panes
- Command palette (Ctrl+P) with fuzzy search
- Configurable keyboard shortcuts
- Window state and session persistence
- Settings modal (font sizes, page size, confirmations)
- Auto-updater with in-app notifications
Grab the latest release for your platform from GitHub Releases:
| Platform | Format |
|---|---|
| macOS (Apple Silicon) | .dmg |
| macOS (Intel) | .dmg |
| Windows | .exe (NSIS installer) / .msi |
| Linux | .deb / .rpm / .AppImage |
Prerequisites:
- Node.js 18+
- Rust 1.70+
- Tauri CLI
- Platform-specific dependencies (see Tauri prerequisites)
# Clone the repository
git clone https://github.com/berbicanes/queryark.git
cd queryark
# Install frontend dependencies
npm install
# Run in development mode
npm run tauri dev
# Build production binary
npm run tauri build| Layer | Technology |
|---|---|
| Desktop runtime | Tauri 2 (Rust) |
| Frontend | SvelteKit 5, Svelte 5 runes, TypeScript |
| SQL editor | CodeMirror 6 |
| SQL drivers | sqlx (PG, MySQL, SQLite), tiberius (MSSQL), clickhouse, snowflake-api, gcp-bigquery-client |
| NoSQL drivers | mongodb, scylla, redis, neo4rs, aws-sdk-dynamodb |
| SSH tunneling | russh |
| OS keychain | keyring |
| Styling | CSS variables, JetBrains Mono / Inter |
| Action | Shortcut |
|---|---|
| Run query | Ctrl+Enter |
| New query tab | Ctrl+N |
| Close tab | Ctrl+W |
| Next / Previous tab | Ctrl+Tab / Ctrl+Shift+Tab |
| Command palette | Ctrl+P |
| Toggle sidebar | Ctrl+B |
| Toggle theme | Ctrl+Shift+T |
| Save query | Ctrl+S |
| Refresh schema | F5 |
| Format SQL | Ctrl+Shift+F |
| Keyboard shortcuts | Ctrl+K |
All shortcuts are customizable in the shortcuts panel.
src/ # Frontend (SvelteKit + TypeScript)
├── lib/
│ ├── components/ # UI components (editor, grid, modals, sidebar, tabs)
│ ├── services/ # Tauri IPC wrappers
│ ├── stores/ # Svelte 5 rune stores
│ ├── types/ # TypeScript types
│ └── utils/ # Formatters, SQL helpers
└── routes/ # SvelteKit pages
src-tauri/ # Backend (Rust)
├── src/
│ ├── commands/ # Tauri command handlers
│ ├── db/
│ │ ├── drivers/ # Database driver implementations (16 drivers)
│ │ ├── traits.rs # DbDriver, SqlDriver, DocumentDriver, KeyValueDriver, GraphDriver
│ │ ├── pool.rs # Connection pool manager
│ │ └── handle.rs # DriverHandle enum
│ ├── models/ # Serde structs
│ └── error.rs # AppError enum
└── Cargo.toml
npm run dev # Start Vite dev server (port 1420)
npm run build # Build frontend
npm run tauri dev # Run full Tauri app in dev mode
npm run tauri build # Build production binary
npm run check # TypeScript / Svelte type checkingContributions are welcome. Please open an issue first to discuss what you'd like to change.
- Fork the repository
- Create a feature branch (
git checkout -b feature/my-feature) - Commit your changes
- Push to the branch (
git push origin feature/my-feature) - Open a Pull Request