Skip to content

Repository files navigation

SQLumen

A native macOS database client built with SwiftUI and Swift 6.

Connect to SQLite, PostgreSQL, MySQL/MariaDB, and DuckDB. Browse tables, run SQL, inspect schema — without paying $99/year for TablePlus.

Status: Work in progress. Core features work; App Store submission in progress.


Screenshots

Connection Manager SQL Editor
View data Schema inspector

Features

  • Four databases: SQLite · PostgreSQL · MySQL / MariaDB · DuckDB
  • Table browser — virtualised grid, column sorting, filter bar, resizable columns
  • SQL editor — Tree-sitter syntax highlighting, ⌘Return to run, multi-statement support, Safe Mode confirmation before DML
  • Schema inspector — tables, views, routines, triggers, sequences, types, extensions
  • DDL viewer — generated CREATE statement for any object
  • Export — CSV, JSON, SQL INSERT
  • Row editing — INSERT / UPDATE / DELETE with Safe Mode confirmation
  • SSL/TLS — disable / prefer / require per connection (PostgreSQL + MySQL)
  • Keychain storage — passwords never touch disk or SwiftData
  • Dark mode — semantic colors throughout, no hardcoded values

Requirements

  • macOS 14 Sonoma or later
  • Xcode 16+ (Swift 6)

Building

Clone and open in Xcode:

git clone https://github.com/btctcn/SQLumen.git
open SQLumen.xcodeproj

The project bundles pre-built static libraries for all C dependencies — no Homebrew or system libraries required:

Package Contents
CPostgres libpq 17 + OpenSSL 3 + libcurl + nghttp2/3 + ngtcp2 + libssh2 + brotli (arm64)
CMysql libmysqlclient 9.6 (arm64)
CDuckDB libduckdb dylib (arm64)
TreeSitterSQL tree-sitter-sql grammar (local package)

Swift packages resolve automatically via SPM:

Apple Silicon only. Universal Binary (x86_64) is not planned for v1.


Architecture

Three-layer architecture — UI → Core → Drivers. Each layer only imports the layer below it.

UI Layer      ConnectionManagerView · WorkspaceView · SQLEditorView · SchemaTreeView
Core Layer    DriverFactory · SafeModeGuard · ExportService · DDLService · IAPService
Driver Layer  SQLiteDriver · PostgreSQLDriver · MySQLDriver · DuckDBDriver

All drivers conform to DatabaseDriver (an Actor protocol). Core never imports a specific driver directly. Results stream via AsyncThrowingStream — no full result sets in memory.

See CLAUDE.md for full architecture docs, code conventions, and roadmap.


License

MIT — see LICENSE.

About

Native macOS database client for SQLite, PostgreSQL, MySQL and DuckDB. Built with SwiftUI + Swift 6.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages