Releases: rust-dd/rsql
Releases · rust-dd/rsql
RSQL v1.1.5
Bug Fix
- Fixed table list not refreshing after using the Refresh connection option — previously tables would only update after manually collapsing and re-expanding the schema tree
Full Changelog: v1.1.4...v1.1.5
RSQL v1.1.4
Connection Refresh
- Added Refresh option to database context menu — reloads schemas, tables, views, functions, and all metadata from the live database without disconnecting
- Right-click any connected database → Refresh to reload all cached data
Startup Reliability Fix
- Fixed intermittent issue where saved connections would not load on app startup
loadProjects()now catches IPC errors and retries automatically after 500ms, handling the race condition where the Tauri backend hasn't finished setup yet
Full Changelog: v1.1.3...v1.1.4
RSQL v1.1.3
Inline Table Editing Fixes
- Fixed inline cell editing — added missing portal element required by glide-data-grid for the edit overlay
- Fixed commit transaction — all statements now run in a single multi-statement SQL on one pooled connection, preventing cross-connection transaction issues
- Fixed connection pool recycling — stale transactions are now automatically rolled back when connections are returned to the pool (
RecyclingMethod::Custom("ROLLBACK")) - Commit button now only applies cell edits (UPDATEs)
- Added separate Delete button for row deletions with a confirmation dialog to prevent accidental data loss
- Toolbar now shows edit and delete counts separately
Other Fixes
- Diff toggle — clicking the Diff button again now returns to the grid view
Full Changelog: v1.1.2...v1.1.3
RSQL v1.1.2
- Added a Test Connection button in the connection modal — validates connectivity and shows the PostgreSQL version before saving
- The Execute button now transforms into a Stop button while a query is running, with
⌘+.shortcut hint - Cancel is now easily accessible directly from the editor toolbar
- Per-tab statement timeout selector added to the editor toolbar (No limit, 5s, 10s, 30s, 1m, 5m, 10m)
- Uses PostgreSQL
statement_timeout— queries exceeding the limit are automatically cancelled
Full Changelog: v1.1.1...v1.1.2
RSQL v1.1.1
Highlights
- Added an interactive table editor in the object properties flow, backed by new
ALTER TABLESQL helpers for faster schema changes. - State management cleanup with Immer middleware and related package updates.
- Website and metadata polish, including SEO updates for the public landing page.
Fixes and polish
- Fixed the table properties view height.
- Synced release versioning so desktop bundles and updater metadata resolve correctly for
1.1.1. - Small dependency and package cleanup.
Notes
- macOS signing and notarization are still in progress. If macOS blocks the app, run:
xattr -dr com.apple.quarantine /Applications/RSQL.app
Full Changelog: v1.1.0...v1.1.1
RSQL v1.1.0
Highlights
- Major performance work across the query pipeline: zero-copy simple-query flow, packed binary IPC, faster virtual pagination with server-side cursors, dual connection pooling, WebGL grid improvements, SIMD JSON serialization with sonic-rs, and parallel page packing for very large results.
- SSL/TLS groundwork, SSH support, and backend pool handling improvements.
- Distribution and product polish: built-in self-updater, signed updater artifacts in the release workflow, Windows and Linux signing work, release pipeline cleanup, and a new website with an in-browser PostgreSQL sandbox at https://rsql.rust-dd.com.
Fixes and polish
- Multiple rendering and memory fixes
- Query execution and virtual grid speedups
- Better release and versioning automation
- General UI cleanup and workflow fixes
Notes
- macOS signing and notarization are still in progress. If macOS blocks the app, run:
xattr -dr com.apple.quarantine /Applications/RSQL.app
Full Changelog: v.1.0.1...v1.1.0
RSQL v1.0.0
The first stable release of RSQL — a high-performance PostgreSQL client built with Tauri v2, React, and Rust.
Performance
- Zero-copy wire protocol — uses PostgreSQL's
simple_queryprotocol, all values returned as pre-formatted text with zero type conversion - Packed binary IPC — results encoded as flat strings with ASCII separators (
\x1F/\x1E) instead of nested JSON arrays - SIMD JSON serialization — all IPC responses pre-serialized with
sonic-rsviatauri::ipc::Response, bypassing Tauri's defaultserde_json(~3.5x faster) - Pre-allocated string packing — single buffer with capacity estimation, inline separator sanitization, zero intermediate allocations
- Virtual pagination — large results pre-packed into page-sized cache strings on the Rust side, O(1) page serving
- Dual connection pool — separate query and metadata connections per project, metadata never blocks on long-running queries
- WebGL canvas rendering —
@glideapps/glide-data-gridwith rAF-batched invalidation and pre-computed theme overrides - Conditional parallelism — Rayon for >50K rows, sequential below for cache locality
- Multi-statement execution —
SELECT 1; INSERT ...; SELECT * FROM users;handled natively, returns last result set with rows
Features
- Monaco SQL editor with context-aware autocomplete (schemas, tables, columns, aliases), SQL snippets, and formatter
- Results grid with column sorting, inline editing (UPDATE/DELETE with transactions), export (CSV, JSON, SQL, Markdown, XML)
- Database explorer — tree sidebar with schemas, tables, views, materialized views, functions, triggers, indexes, constraints, policies
- ERD diagrams — interactive entity-relationship diagrams with FK lines, drag-and-drop, SVG export
- FK navigation — click foreign key values to jump to referenced rows
- Map view — automatic PostGIS geometry/geography detection (WKT, GeoJSON, EWKB) rendered on OpenStreetMap tiles via Leaflet
- EXPLAIN visualizer —
EXPLAIN (ANALYZE, FORMAT JSON)with plan tree rendering - Performance monitor — live
pg_stat_activity, database stats, table-level stats - Diff tool — pin a result, run another query, see added/removed rows (diff computed in Rust with Rayon)
- Inline terminal — built-in PTY terminal via
portable-pty+xterm.js - Command palette —
Cmd+K/Cmd+Pfuzzy search across all database objects, actions, and saved workspaces - Workspaces — save and restore tab groups across sessions
- Query history — searchable execution history with timing and row counts
- OS notifications — long-running queries (>5s) notify when app is unfocused
Tech Stack
| Layer | Technology |
|---|---|
| Frontend | React 19, TypeScript, Zustand, Monaco Editor, Leaflet |
| UI | Tailwind CSS v4, shadcn/ui, oklch color system |
| Results Grid | @glideapps/glide-data-grid (WebGL) |
| Terminal | xterm.js + portable-pty |
| Backend | Rust (edition 2024), Tauri v2, tokio-postgres |
| Performance | sonic-rs (SIMD), rayon, packed binary IPC, dual connection pool |
v.1.0.0-rc.0
What's Changed
Full Changelog: v.1.0.0-beta.3...v.1.0.0-rc.0
v.1.0.0-beta.3
See the assets to download and install this version.
Full Changelog: v.1.0.0-beta.2...v.1.0.0-beta.3
v.1.0.0-beta.2
Full Changelog: v.1.0.0-beta.1...v.1.0.0-beta.2