* chore: bump version to 0.7.5 (Task 1.1) * feat(db): pure object DDL/search/depend builders (Task 1.2) * feat(models): ObjectSearchHit, DependencyInfo, PgToolPaths, tool source fields (Task 1.3) * feat(backup): bundle-aware pg tool resolution, system-first fallback (Task 2.1) * feat(objects): schema CRUD commands + integration test (Task 2.2) * feat(objects): search_objects command (current-schema, all types) (Task 2.3) * feat(objects): get_object_ddl for all browsable types (Task 2.4) * feat(objects): pg_depend object dependencies + schema contents (Task 2.5) * feat(ipc): register object management commands (Task 3.1) * feat(ipc): frontend wrappers + types for object management (Task 3.2) * feat(build): declare bundled pg_tools resources (Task 3.3) * test(capabilities): lock objects capability PG-only for search/ddl/dependencies (Task 3.4) * feat(ui): Cmd+K object search palette in DB viewer (Task 4.1) * feat(ui): schema CRUD menu + dependency dialog (Task 4.2) * feat(ui): copy-as-DDL + dependency view context menu in Objects (Task 4.3) * feat(ui): dependency check before table drop + bundled-tool status (Task 4.4) * docs: v0.7.5 release notes + status table + bundled-tools (Task 5.1) * ci: build/verify bundled pg client tools per platform before tauri build (Task 5.2) * fix(objects): report pg_rewrite dependencies as the dependent view (pg_class) pg_depend records view dependencies via the view's internal rewrite rule (classid = pg_rewrite). The user-facing dependent object is the VIEW itself, so map that classid to pg_class (name still resolved through ev_class). Fixes the live-PG integration test object_dependencies_for_table_includes_view and makes the dependency dialog readable for view dependents. * test: add idempotent PG integration-test seed script Seeds the first PG test db (GRIDLINE_TEST_SRC) with the objects the #[ignore] integration tests assert against: users (+users_id_seq), products (3 rows), orders (3 rows), order_summary view, audit_log + get_user functions, user_role enum. Idempotent: DROP + recreate. * fix(build): regenerate multi-resolution icons + roadmap Keychain item - icon.ico previously contained a single 16x16 frame (Windows scaled it up -> blurry taskbar/start-menu icon). Regenerated from the 512px source via 'tauri icon': ICO now has 16/24/32/48/64/256 frames, icns has full @2x coverage up to 1024px, PNGs re-rendered from the same source. - Added icons/icon.png (512px) to bundle.icon so Linux hicolor installs a high-DPI entry. - ROADMAP: log the 'Enable Keychain' toggle (currently a form-only placeholder) under Next up -> Connection & credentials. * docs(readme): dynamic version-free download links + 3-col table - release.yml: set releaseAssetNamePattern to '[name]_[platform]_[arch][setup][ext]' (version-free), so asset filenames are stable across releases: Gridline_darwin_aarch64.dmg, Gridline_windows_x64-setup.exe, Gridline_linux_amd64.deb, Gridline_linux_x86_64.rpm, etc. - README: both download tables now 3-column (OS | Architecture | Download) and link via GitHub's releases/latest/download/<file> redirect — they always point at the newest published release, no per-release edits. - AGENTS.md: releases checklist updated — download links stay version-free. * docs(readme): platform-per-column download table (macOS | Windows | Linux) Table now mirrors the release layout: one column per OS with a logo row and a download-links row underneath. Links stay version-free via releases/latest/download/<file> (releaseAssetNamePattern in release.yml). * docs(readme): revert download table to clean image-less 3-col layout Logo row was hard to read on GitHub dark mode; the plain OS | Architecture | Download table is cleaner and still uses dynamic releases/latest links.
Gridline
A lightweight, open-source database GUI for PostgreSQL, MySQL, SQLite, and Redis.
Unlimited connections, tabs, and saved queries — with first-class pg_dump, pg_restore, and DB-to-DB sync.
Data Grid & FK Preview — browse 50+ real demo orders and inspect related rows in one click.
Download
Grab the installer for your OS from the latest release — links always point to the newest build:
| OS | Architecture | Download |
|---|---|---|
| macOS | Apple Silicon (M1/M2/M3/M4…) | Gridline_darwin_aarch64.dmg |
| macOS | Intel | Gridline_darwin_x64.dmg |
| Windows | x64 | Gridline_windows_x64-setup.exe |
| Debian / Ubuntu | amd64 | Gridline_linux_amd64.deb |
| Fedora / RHEL / openSUSE | x86_64 | Gridline_linux_x86_64.rpm |
| Other Linux | amd64 | Gridline_linux_amd64.AppImage |
Not sure if your Mac is Intel or Apple Silicon? See Which file should I download? below. All installers are unsigned — see the notes on first-launch warnings.
What is Gridline?
Gridline is a modern, open-source database GUI client built with Tauri 2.0, Rust, and React. It is lightweight by design (~40 MB baseline), powerful by default, and free from the paywalls that limit commercial alternatives.
- No caps on connections, tabs, or saved queries.
- Deep PostgreSQL tooling — visual
pg_dump,pg_restore, and DB-to-DB sync. - Full MySQL + SQLite browsing — connect, browse, query, and edit MySQL and SQLite the same way you do PostgreSQL.
- Full object explorer — not just tables, but functions, triggers, sequences, enums, extensions, materialized views, and procedures.
- Interactive ER diagram — explore relationships visually with crow's-foot cardinality notation.
- Production-safe editing — stage INSERT/UPDATE/DELETE changes, review the generated SQL, then commit all at once.
The app ships with a built-in Gridline Demo (SQLite) database, so you can explore every feature immediately without setting up a server.
Who is it for?
Gridline is built for developers and small teams who manage multiple database environments:
- Full-stack developers switching between local, staging, and production databases.
- Platform / DBAs who need
pg_dump,pg_restore, and sync tooling in a native UI. - Teams that want native speed without Electron bloat or seat licenses.
Recent Changes
- 2026-08-05: v0.7.5 — bundled
pg_dump/pg_restore/psql(system-first, bundled fallback) so admin features work with no separate install; schema CRUD (create/rename/drop with CASCADE + dependency warning); Cmd+K object search (current schema, all object types); copy-as-DDL for every browsable object type;pg_dependobject-dependency view shown before destructive drops. - 2026-08-04: v0.7.5 — revamped the New Connection screen into a two-stage flow with a 6-provider grid (PostgreSQL, MySQL, SQLite, Redis, Supabase, NeonDB; managed presets ship with setup guides + SSL hints) and added full MySQL DB viewer support (connect, browse, query, inline cell editing + changes queue, DDL copy).
- 2026-08-04: Revamped the built-in SQLite demo database with realistic e-commerce data (20 users, 24 products, 50 orders, 100 page views, 500 audit rows) and renamed it to Gridline Demo (SQLite).
- 2026-07-XX: Added inline cell editing with a stage-first changes queue, row-detail drawer, keyboard navigation, and cell-level copy.
- 2026-07-XX: Added visual filter builder with drag-and-drop column palette and type-aware operators.
- 2026-07-XX: Added schema visualizer with React Flow + dagre, crow's-foot notation, and cross-schema FK support.
- 2026-07-XX: Added query history dropdown, saved queries, and a two-pane Queries view.
- 2026-06-XX: Added settings redesign with live theme, accent color, font size, editor options, and tag reorder.
- 2026-06-XX: Added SSH tunneling (password + key auth) and full PostgreSQL TLS runtime for production connections.
Key Features
Connections & Workspace
- URI auto-fill — paste
postgres://,mysql://,sqlite://, orredis://strings and have all fields populate automatically. - Provider grid — pick PostgreSQL, MySQL, SQLite, Redis, Supabase, or NeonDB; managed presets surface in-app setup guides and an SSL hint.
- Workspace tree — multi-level folders, color-coded tags, favorites, and recent connections.
- OS keychain storage — passwords and SSH secrets live in macOS Keychain / Linux Secret Service / Windows Credential Manager, never in plaintext.
- SSH tunneling — real
ssh2tunnels with password or key authentication. - TLS / SSL — full PostgreSQL/MySQL TLS modes plus client-certificate support.
- Connection status — on-demand per-card test with real server version and latency.
Schema Explorer
- Tables, views, and materialized views — column metadata, PK/FK, defaults, nullable flags.
- Functions & procedures — syntax-highlighted source, argument signatures, overload disambiguation.
- Triggers, sequences, enums, extensions — unified Objects view with type switcher.
- Indexes & constraints — per-table index details plus CHECK/UNIQUE constraints beyond PK/FK.
- Schema CRUD — create/rename/drop schemas from the object tree, with typed-name + dependency warning on CASCADE drops.
- Global object search — ⌘K, current schema, all object types; results open a table tab or jump to the Objects view.
- Copy as DDL —
CREATEDDL for every browsable object type. - Object dependencies —
pg_depend"what depends on this?" view before destructive drops. - Schema visualizer — interactive ER diagram with auto-layout, cardinality legend, and collapsible columns.
Data Grid
- Virtualized rows — handles 100k+ rows via
@tanstack/react-virtual. - Server-side filtering & sorting — pushed to SQL
WHERE/ORDER BY. - FK preview — click the ↗ icon on a foreign-key cell to inspect the referenced row or open a filtered tab.
- JSON/JSONB viewer — formatted and raw tabs with copy.
- Inline cell editing — double-click or press Enter; changes stage through the queue before commit.
- Smart editors — enum dropdowns for PG enum columns, searchable FK dropdowns for related rows.
- Visual filter builder — drag-and-drop columns with type-aware operators.
- Export — JSON, CSV, SQL, and Markdown downloads of visible rows.
- Auto-refresh — configurable interval timer.
Query Workbench
- Monaco SQL editor — lazy-loaded, with keywords + table/column autocomplete.
- Custom query execution — arbitrary SQL with destructive-query confirmation.
- Query tabs — unlimited tabs, close with
Cmd/Ctrl+W. - Query history — per-connection, with favorites and pruning.
- Saved queries — name, folder, and manage them in the Queries view.
- Changes queue — stage edits, review generated SQL, revert per change, then commit all.
PostgreSQL Admin Tools
- Visual Backup —
pg_dumpwrapper with format selector, schema filter, no-owner toggle, real-time progress. - Visual Restore —
pg_restorewrapper with clean toggle and destructive confirmation. - DB-to-DB Sync — pipe
pg_dump→pg_restorebetween two connections. - Bundled client tools —
pg_dump/pg_restore/psqlship with the app; system tools are preferred when present, bundled tools are the fallback.
Screenshots
Why Gridline vs the alternatives?
Capabilities below are fact-checked against each vendor's official docs and pricing (May 2026).
| Capability | DB Pro (Free) | Beekeeper (Free) | TablePlus (Free) | Gridline |
|---|---|---|---|---|
| Open tabs | 3 | Unlimited | 2 | Unlimited |
| Saved connections | 2 | Unlimited | Unlimited | Unlimited |
| Saved queries | 5 | Unlimited | Unlimited | Unlimited |
| Data export (CSV, JSON, SQL) | ✅ (unlimited = paid) | Basic only | ✅ | JSON, CSV, SQL, Markdown |
pg_dump / pg_restore GUI |
❌ | ❌ paid only | ✅ | First-class UI |
| DB-to-DB sync | ❌ | ❌ | ❌ | Built-in pipe sync |
| Object explorer depth | Tables, views, indexes, enums | Tables, views, routines, triggers | Tables, views, functions, procedures | Functions, Triggers, Sequences, Enums, Extensions + full detail |
| ER diagram / schema visualizer | ✅ view-only | ❌ paid only | ❌ | ✅ React Flow + dagre |
| SSH tunneling | ❌ paid only | ✅ | ✅ | ✅ Password + key auth, keychain |
| OS credential vault | ✅ | ✅ | ✅ | Keychain / Secret Service / Credential Manager |
| Workspace / folder hierarchy | ✅ query/dash folders + tags | ✅ (5.7+, local) | ❌ | Multi-level tree + tags |
| Changes queue (stage → commit) | ❌ | ✅ Apply/Discard | ✅ Safe mode | ✅ Queue → Commit All |
| Desktop shell size | Electron | Electron (~250 MB) | Native | Tauri 2.0 (~40 MB) |
| Open source | ❌ | ✅ GPLv3 | ❌ | ✅ Apache 2.0 |
Notes: DB Pro is an Electron app (launched Nov 2025) whose marketing copy overclaims — its free plan caps connections/tabs/saved queries (FAQ inconsistently claims "unlimited local connections") and gates data imports + SSH tunneling to paid, though CSV/JSON export does work on the free tier; Beekeeper's free Community edition genuinely offers unlimited tabs/connections/queries but gates backup/restore, file import, multi-table export, ERD, AI, and premium DB connectors behind paid tiers; TablePlus's free tier includes every feature but caps you at 2 open tabs / 2 windows / 2 advanced filters.
Tech Stack
| Layer | Technology | Role |
|---|---|---|
| Desktop shell | Tauri 2.0 | Native webview container (~40 MB baseline) |
| Backend | Rust + tokio | Async runtime, connection pooling, CLI execution |
| DB drivers | sqlx / tokio-postgres | PostgreSQL via tokio-postgres; MySQL via sqlx; SQLite via rusqlite |
| CLI integration | std::process::Command |
Wraps bundled or system pg_dump / pg_restore |
| Frontend | React 19 + TypeScript | Component-based UI |
| Styling | Tailwind CSS | Utility-first, dark mode, glassmorphic design |
| State | Zustand / Jotai | Domain stores |
| Editor | Monaco Editor | IDE-grade SQL editing |
| Data grid | TanStack Virtual | 100k+ row virtualization |
| Local store | SQLite via rusqlite | Settings, saved queries, workspace state |
Getting Started
Download a release
Pre-built installers for macOS, Windows, and Linux are published on the Releases page.
⚠️ Gridline is under active development. Expect rough edges and please open issues when you hit them.
Installers are unsigned (for now)
Gridline is currently distributed unsigned — it doesn't pay for code-signing certificates yet. Your OS will warn you the first time you open it. This is expected — the app is safe, it just hasn't paid the signing fee:
- macOS: right-click the app → Open → Open (or System Settings → Privacy & Security → Open Anyway). Do this once per version.
- Windows: on the SmartScreen prompt, click More info → Run anyway.
- Linux: no warning — install and run normally.
Code signing will be added in the future (Apple Developer Program + a Windows signing cert, e.g. Azure Trusted Signing) — the CI workflow is already wired to pick up the signing secrets automatically the moment they exist, no workflow changes needed.
Which file should I download?
Each release contains one file per platform — you only need the one that matches your computer. The links below always point at the newest build (the asset names are version-free, so they never go stale):
| Your system | Download this | Notes |
|---|---|---|
| macOS Apple Silicon (M1/M2/M3/M4…) | Gridline_darwin_aarch64.dmg | aarch64 = Apple's own chip |
| macOS Intel | Gridline_darwin_x64.dmg | x64 = Intel/AMD |
| Windows (most PCs) | Gridline_windows_x64-setup.exe | The .msi is an alternate installer (for enterprises/IT admins) |
| Debian / Ubuntu | Gridline_linux_amd64.deb | Install: sudo apt install ./Gridline_linux_amd64.deb |
| Fedora / RHEL / openSUSE | Gridline_linux_x86_64.rpm | Install: sudo dnf install Gridline_linux_x86_64.rpm |
| Any other Linux | Gridline_linux_amd64.AppImage | Works on every distro: chmod +x the file, then double-click it |
Not sure if your Mac is Intel or Apple Silicon? Click the Apple menu → About This Mac. If it shows "Apple M1/M2/M3/M4…" download the aarch64 file; if it shows an Intel chip, download x64. Downloading the wrong one won't run.
How releases are made
Cutting a release is one command — CI builds everything. Releases are cut from prod, which is the production branch — only push release tags from prod, never from feature branches:
git checkout prod && git pull
git tag v0.7.5
git push origin v0.7.5
GitHub Actions (.github/workflows/release.yml) builds installers for Apple Silicon, Intel Macs, Windows, and Linux, then opens a draft release on the Releases page — review it and hit Publish release.
Before tagging, make sure the version number is in sync across package.json, src-tauri/Cargo.toml, and src-tauri/tauri.conf.json.
Build from source
# 1. Clone the repository
git clone https://github.com/adrianbonpin/gridline.git
cd gridline
# 2. Install frontend dependencies
bun install
# 3. Run in development mode with hot-reload
bun run tauri dev
# 4. Build for production
bun run tauri build
System requirements
- macOS: 13 (Ventura) or newer
- Windows: 10 or newer
- Linux: Ubuntu 22.04+ or equivalent modern distribution
- RAM: 8 GB recommended
- PostgreSQL client tools:
pg_dump/pg_restore/psqlare bundled with Gridline — no separate install required for backup/restore/sync. (System tools, if installed, are preferred.)
Development
# Frontend only (Vite dev server)
bun run dev
# Full Tauri app with hot-reload
bun run tauri dev
# Production build
bun run tauri build
# Rust backend only
cd src-tauri
cargo build
# Run tests
cargo test
Project structure
gridline/
├── src/ # React frontend
│ ├── components/ # Reusable UI components
│ ├── stores/ # Zustand/Jotai state stores
│ ├── hooks/ # Custom React hooks
│ ├── lib/ # Utilities, types, Tauri bindings
│ ├── App.tsx # Root component
│ └── main.tsx # Entry point
├── src-tauri/ # Rust backend
│ ├── src/
│ │ ├── main.rs # Entry point
│ │ ├── lib.rs # Tauri command registration
│ │ ├── db/ # Database connection & pooling
│ │ ├── commands/ # Tauri IPC command handlers
│ │ └── models/ # Data structures & serde types
│ ├── Cargo.toml
│ └── tauri.conf.json
├── public/ # Static assets
├── package.json
├── tsconfig.json
└── vite.config.ts
Roadmap
The full plan — in-development (v0.7.5), next-up, queue, and shipped history — lives in ROADMAP.md.
Highlights of what's next:
- Full Object Management — CRUD on functions, triggers, sequences, enums, extensions, and views without the Query tab (schema CRUD, global object search, copy-as-DDL, and object dependencies shipped in v0.7.5)
- Full Redis support — key browser, type-aware value editors, TTL management
- More database types — MariaDB, TimescaleDB, and friends
- Managed DB support — PlanetScale, Turso (Supabase/Neon presets shipped in v0.7.5)
- AI integration (BYOK) — natural-language → SQL, chat, summaries, charts
Table of Contents
- Download
- What is Gridline?
- Who is it for?
- Recent Changes
- Key Features
- Screenshots
- Why Gridline vs the alternatives?
- Tech Stack
- Getting Started
- Development
- Roadmap
- Contributing
- License
Contributing
Contributions, bug reports, and feature ideas are welcome. Gridline is Apache 2.0-licensed and intentionally stays open — no paywalled tiers, no bundled proprietary services.
- Report a bug via the issue template — it walks you through environment details (OS, Gridline version, DB type/version, connection method) so we can reproduce issues quickly. Opening a new issue pre-fills the template automatically.
- Submit a pull request. Keep Tauri commands thin, type IPC boundaries explicitly, and follow the existing Rust/React conventions.
License
Apache 2.0 — see LICENSE for details.
