Skip to content
Leon-AchtereschPublic

About

Fast, native desktop database client for PostgreSQL, ClickHouse, Oracle and more. Built with Tauri v2, React 19 and Rust. Query editor, table browser with inline editing, ER diagrams, EXPLAIN plans, SSH tunnels, OS keychain secrets and a built-in MCP server.

Topics

Resources

Security policy

Stars

4 stars

Watchers

0 watching

Forks

Latest commit

 

History

1,233 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

l8db

A fast, native desktop client for PostgreSQL and other database families — built with Tauri v2, React 19, and Rust.

Platform License CI


Features

Features depend on the selected database family and installed driver. The list below describes the PostgreSQL feature set; see the provider matrix and contributor guide for other products, capabilities and driver requirements.

  • Table browser — browse rows with filtering, sorting, and pagination
  • Inline row editing — edit, insert, duplicate, and delete rows with transaction support
  • Schema inspector — columns, indexes, constraints, foreign keys, and triggers per table
  • Query editor — Monaco-based SQL editor with syntax highlighting and formatting
  • Query history & saved queries — automatic per-connection history (search, re-run) plus named saved queries
  • EXPLAIN visualization — EXPLAIN and EXPLAIN ANALYZE rendered as a collapsible plan tree with costs and timings
  • SQL lint — unknown tables in FROM/JOIN get warning markers (CTE-aware)
  • ER diagram — visual entity-relationship diagram for a schema
  • Views — list and edit view definitions
  • Materialized views — list, create, refresh (standard and concurrent), and drop
  • Row Level Security — enable/force RLS per table, manage policies (roles, USING / WITH CHECK)
  • Partitioning — inspect partitioned tables, attach and detach partitions
  • Logical replication — manage publications (per-table or FOR ALL TABLES) and subscriptions
  • Sessions & locks — live pg_stat_activity with cancel/terminate, plus lock monitor
  • Enums — browse, create, and drop enum types
  • Schemas — create and drop (with optional CASCADE)
  • Database overview — sizes per database and schema on the home dashboard
  • Functions — browse and edit stored functions/procedures
  • Triggers — view trigger definitions per table
  • Sequences — list and alter sequences (start, min, max, increment, cycle, restart)
  • Extensions — list installed extensions; install or drop them via SQL
  • Roles & privileges — manage roles and their schema/table privileges
  • Data export — export table data or query results as CSV or JSON
  • Transaction panel — review and commit/rollback pending changes
  • Multiple connections — manage and switch between connections; supports connection strings and individual fields
  • SSL / TLS — disable, prefer, require, verify-ca, verify-full per connection (OS certificate store)
  • SSH tunnels — reach private databases through a bastion (password, key or SSH agent incl. 1Password, ProxyJump chains, known_hosts verification with optional TOFU on every hop, host import from ~/.ssh/config); database TLS follows the selected SSL mode. See docs/ssh-network.md
  • Proxies — SOCKS5 and HTTP CONNECT (optional credentials) to reach the SSH server or, without SSH, the database itself via a local forwarding port
  • OS keychain secrets — passwords live in Keychain / Credential Manager / Secret Service, never in localStorage
  • AI assistant — ask questions about your data in plain language (⌘J or "KI fragen" in the command palette). Answers come with charts and tables you can export as CSV or Excel or open as SQL, plus suggested follow-up questions. Attach CSV, Excel, JSON or Parquet files and let the AI load them into a new table after your approval. Per-connection knowledge (table descriptions and a glossary) is written by you or generated by the AI and used in every chat. Works with Codex, Claude Code, Gemini CLI, OpenCode, GitHub Copilot, your own OpenAI/Anthropic/Google key, or fully local models via Ollama and LM Studio. See docs/ai-workspace.md
  • Dark / light / system theme

Stack

Layer Technology
Shell Tauri v2 (Rust backend)
Frontend React 19 · TypeScript · Vite
Routing TanStack Router
Data TanStack Query
UI shadcn/ui · Tailwind CSS v4
Editor Monaco Editor
DB tokio-postgres · bb8 connection pool

Getting Started

Prerequisites

  • Rust (stable toolchain)
  • Bun (version 1.3.10; bun is required — tauri.conf.json hardcodes it)
  • Tauri CLI v2: cargo install tauri-cli --version "^2"

Development

bun install
bun run tauri dev

The app opens automatically. The Vite dev server runs on port 1420 (strict).

Production build

bun run tauri build

Outputs an installer / app bundle in src-tauri/target/release/bundle/.


Project Structure

src/
  features/          # Feature modules (one view component per feature)
    shell/           # App chrome: layout, header, sidebar, tab bar, transaction panel
    table/           # Table & view browser (data, columns, indexes, triggers)
    query/           # SQL query editor
    alter-table/     # Column management (add / alter / drop)
    sequences/       # Sequence listing and editing
    extensions/      # Extension management
    functions/       # Function/procedure browser
    triggers/        # Trigger viewer
    er-diagram/      # ER diagram canvas
    users/           # Roles & privileges
    settings/        # App settings
    home/            # Home / overview
  components/ui/     # Shared shadcn primitives
  lib/
    db.ts            # Tauri invoke() bridge (all commands)
    queries.ts       # TanStack Query hooks
    connections.ts   # Zustand connection store (persisted)
    settings.ts      # Zustand settings store (persisted)
    transactions.ts  # Transaction state
  routes/            # TanStack Router file routes (thin wrappers)

src-tauri/src/
  db/
    mod.rs           # DatabaseAdapter trait + shared types
    postgres.rs      # PostgreSQL implementation
    commands.rs      # #[tauri::command] handlers
    pool.rs          # bb8 connection pool management
    transaction.rs   # Transaction state management
  lib.rs             # Tauri builder, plugin init, command registration
  main.rs            # Entry point

Architecture Notes

  • All invoke() calls are centralized in src/lib/db.ts. TypeScript types mirror Rust structs — keep them in sync.
  • DatabaseAdapter trait in src-tauri/src/db/mod.rs is the extension point for additional DB engines.
  • Routes in src/routes/ are thin: they wire createFileRoute to feature views. Route tree is auto-generated into src/routeTree.gen.ts — do not edit it manually.
  • Connections are persisted in localStorage under key l8db.connections.
  • PostgreSQL connections use postgres-native-tls (OS certificate store) with per-connection ssl_mode.
  • fetch_table_rows uses the configurable page size from settings (default 100). Builder-generated filters are validated server-side; raw SQL filter mode sends allow_raw=true.

Contributing

  1. Fork the repo and create a feature branch.
  2. Run cargo check and cargo clippy in src-tauri/ before committing Rust changes.
  3. Run npx tsc -p tsconfig.app.json --noEmit to typecheck the frontend.
  4. Open a pull request with a clear description of the change.

Operations

  • Data transfer behavior, limits and benchmarks: data-transfer.md.

  • Backup, restore and dump tools: backup.md.

  • Reproducible database and browser checks: integration-tests.md.

  • Performance tests, workload replay and l8db --benchmark: performance.md.

  • Production configuration: .github/PRODUCTION.md.

  • CHANGELOG.md tracks user-facing changes (Keep a Changelog).

  • Releases: every push to main auto-publishes installers for macOS (Universal DMG), Windows (MSI/NSIS), and Linux (deb/AppImage) plus latest.json for the in-app auto-updater — version (<major>.<minor>.<commit-count>) and changelog are generated from Conventional Commits. Full runbook: .github/RELEASING.md.

  • OS package managers (Homebrew, winget, AUR, Flatpak): templates in packaging/, guide in packaging/README.md.

  • SECURITY.md describes supported versions and how to report vulnerabilities.


License

l8db is open source under the Apache License 2.0. See NOTICE for attribution.

About

Fast, native desktop database client for PostgreSQL, ClickHouse, Oracle and more. Built with Tauri v2, React 19 and Rust. Query editor, table browser with inline editing, ER diagrams, EXPLAIN plans, SSH tunnels, OS keychain secrets and a built-in MCP server.

Topics

Resources

Security policy

Stars

4 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages