QueryDeck is a fast, lightweight SQL client for Microsoft SQL Server, PostgreSQL, MySQL, and SQLite — a slim, modern alternative to SQL Server Management Studio (SSMS), Azure Data Studio, pgAdmin, and MySQL Workbench. Browse your schema, write SQL, and explore and edit your data, all in a lightweight native app.
Built with Tauri 2 + React + TypeScript and a small Rust core using
tiberius for SQL Server and
sqlx for PostgreSQL, MySQL, and SQLite.
Windows-first. ~10 MB installer (uses the OS WebView2 runtime — no bundled Chromium).
Connect & browse
- SQL Server auth with Encrypt / Trust-server-certificate options
- Saved connections with a quick-switch dropdown; passwords stored in Windows Credential Manager
- Schema sidebar: tables/views → columns with type badges; object search (
Ctrl+P)
Query
- CodeMirror T-SQL editor with syntax highlighting + autocomplete
- Run (
Ctrl+Enter), cancel a running query, format SQL (Shift+Alt+F) - Multiple query tabs, query history (searchable), saved/favorite queries
- Configurable
TOProw-limit guard
Results
- Type-aware grid: money, datetime, GUID,
bit, and distinct NULL rendering - Sort, filter-in-results, copy as CSV/JSON, export to CSV / JSON / Excel
- Editable results (PK-aware): inline cell edit →
UPDATE, row delete/insert, with IDENTITY/computed columns auto-detected and protected
Experience
- Command palette (
Ctrl+K), frameless window with custom controls - Themes: VS Code Dark Pro, GitHub Light, Solarized Light, Quiet Light
- Settings (theme, row limit, font size) — all persisted locally
See docs/ROADMAP.md for what's shipped and what's planned, and docs/VISION.md for the product vision.
| Layer | Tech |
|---|---|
| Shell | Tauri 2 (WebView2) |
| Frontend | Vite · React 19 · TypeScript |
| State | Zustand |
| Editor | CodeMirror 6 (@codemirror/lang-sql, T-SQL) |
| SQL Server driver | tiberius (async, Rust) |
| Persistence | tauri-plugin-store + OS keychain (keyring) |
Grab the installer for your OS from the latest release:
- Windows —
.msior.exe - macOS —
.dmg(Apple Siliconaarch64or Intelx64) - Linux —
.AppImage,.deb, or.rpm
First‑run warning? QueryDeck isn't yet signed with an OS code‑signing certificate, so Windows and macOS show a one‑time "unverified publisher" prompt. It's safe to proceed — the installers are cryptographically signed for the in‑app updater.
- Windows (SmartScreen): click More info → Run anyway.
- macOS (Gatekeeper): right‑click the app → Open and confirm (or System Settings → Privacy & Security → Open Anyway).
- Node.js 18+ and npm
- Rust (stable) — https://rustup.rs (MSVC toolchain on Windows)
- A reachable SQL Server instance (local, Docker, or remote)
Platform build tools:
- Windows: the Visual Studio C++ Build Tools ("Desktop development with C++")
- Linux: GTK/WebKit and TLS development libraries. On Debian/Ubuntu:
(
sudo apt install -y libwebkit2gtk-4.1-dev libgtk-3-dev libsoup-3.0-dev \ librsvg2-dev libjavascriptcoregtk-4.1-dev libssl-dev build-essential pkg-config
libssl-devis required — thetiberiusdriver links OpenSSL for TLS.)
npm install
npm run tauri devnpm run tauri buildQueryDeck ships an in-app auto-updater (Tauri's updater plugin). On startup it
silently checks for a new version, and Settings → Check for updates triggers a
manual check; when one is found the user can install and relaunch in place.
Updates are served from this repo's GitHub Releases. The endpoint and signing
public key live in src-tauri/tauri.conf.json under plugins.updater.
Publishing a release is automated by .github/workflows/release.yml — push a
version tag and it builds signed installers for Windows/macOS/Linux and uploads a
latest.json manifest:
# bump "version" in src-tauri/tauri.conf.json first, then:
git tag v0.1.1 && git push origin v0.1.1The workflow creates a draft release; review it and publish, and clients will pick it up (the endpoint points at the latest published release).
One-time setup — the release workflow runs in the Prod GitHub Environment
(Settings → Environments → Prod). Add two secrets there:
TAURI_SIGNING_PRIVATE_KEY— contents of the private key generated withnpm run tauri signer generateTAURI_SIGNING_PRIVATE_KEY_PASSWORD— its password (empty string if none)
If the
Prodenvironment has protection rules (required reviewers, or a deployment-branch/tag allow-list), the release job will wait for approval or be blocked — make sure yourv*tags are permitted.
⚠️ Keep the private key out of the repo. If it's lost, existing installs can no longer verify updates. Rotating it requires shipping a build with the new public key by a non-updater channel.
querydeck/
├── docs/ VISION.md · ROADMAP.md
├── src/ React frontend
│ ├── components/ UI components
│ ├── lib/ api · persist · types · store (Zustand)
│ └── styles/app.css
├── src-tauri/ Rust backend
│ └── src/db.rs tiberius connection registry + commands
└── ...
The frontend talks to a handful of Rust commands (connect, run_query,
cancel_query, list_schema, secret_*) that return a normalized
{ columns, rows, row_count, elapsed_ms } shape — the UI never deals with raw
SQL Server types.
What is QueryDeck?
QueryDeck is a fast, lightweight desktop SQL client for Microsoft SQL Server, PostgreSQL,
MySQL, and SQLite. It lets you connect to a database, browse its schema, write and run
SQL, and view and edit results — in a small native app built with Tauri, React, and a Rust
core (tiberius for SQL Server, sqlx for PostgreSQL/MySQL/SQLite).
Is QueryDeck free? Yes. QueryDeck is free and open source under the MIT license.
How is QueryDeck different from SSMS or Azure Data Studio? It's intentionally slim and focused: a ~10 MB installer that starts instantly and uses the OS WebView (no bundled Chromium). It covers the everyday loop — connect, browse, query, edit, export — without the weight of the larger tools.
Which databases does QueryDeck support?
Microsoft SQL Server (including Azure SQL and SQL Server in Docker) via the
tiberius driver, plus PostgreSQL, MySQL/MariaDB, and SQLite via sqlx
(see docs/ROADMAP.md). PK-aware inline result editing
(UPDATE/DELETE/INSERT) works across all four engines.
Which platforms does it run on? Windows-first, with builds for macOS and Linux. Passwords are stored in the OS keychain (Windows Credential Manager on Windows).
Does QueryDeck work offline? Yes. It talks only to the SQL Server you connect to — there are no required cloud or telemetry services. The app updates itself from GitHub Releases when you choose to.
Does QueryDeck use AI? Not in the shipped app. A plain-English-to-SQL "Ask" feature is on the roadmap as an optional, opt-in capability (see docs/VISION.md).
MIT © Zilu Ramkrishna Rane