dasunNimantha/tablio
dasunNimantha/tablio has 47 GitHub stars and 4 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-11 13:39 UTC. Last push 2026-11-05.
Open-source, cross-platform desktop database client for PostgreSQL, MySQL, MariaDB, SQLite, CockroachDB, TiDB, and Cassandra/ScyllaDB.
实测星标增长
- 24小时
- 0
- 7天
- 正在收集历史
- 15天
- 正在收集历史
- 1个月
- 正在收集历史
各周期内的星标净变化,周期相互重叠,并非每日新增。缺失的测量保持空白。星标代表关注度,不代表软件质量。
README.md
原文
Tablio
Open-source, cross-platform desktop database client
Browse, query, and manage your databases from one native application.
Features • Installation • Development • Architecture
Why Tablio?
Most database GUIs are either bloated, expensive, or locked to a single engine. Tablio is a free, lightweight, native desktop application that connects to PostgreSQL, MySQL, MariaDB, SQL Server, CockroachDB, TiDB, SQLite, and Cassandra/ScyllaDB through a single unified interface. Built with Rust and React for speed and reliability.
Features
Multi-Database Support
Connect to PostgreSQL, MySQL, MariaDB, SQL Server, CockroachDB, TiDB, SQLite, and Cassandra/ScyllaDB from one application. Each database has a dedicated driver with engine-specific optimizations. Save, organize, and color-code your connections. Supports SSL/TLS with configurable certificate validation and SSH tunnels with password / identity-file / agent auth, host-key fingerprint confirmation, persistent known-hosts, and ~/.ssh/config import.
Data Browsing and Inline Editing
- Paginated, sortable, and filterable data grid powered by AG Grid
- Edit cells inline with change tracking and single-transaction commits
- In-grid search with match navigation between results
- Show, hide, and reorder columns with persisted preferences
- Row detail view for tables with many columns
- Primary key and foreign key badges on column headers
SQL Query Console
- Monaco-powered editor with syntax highlighting and table/column autocompletion
- Execute queries and view results in a resizable split pane
- Built-in SQL formatter, query history with pinning, and saved queries
- Visual query execution plan viewer
- Chart mode for visualizing query results as bar, line, pie, or scatter charts
Schema Management
- Lazy-loaded object tree: databases, schemas, tables, views, and functions
- Create and alter tables through dialogs
- View DDL for any database object
- Drop and truncate with confirmation
- Table structure and storage statistics
Server Administration
- Live activity dashboard with active sessions, locks, and server configuration
- Per-query performance statistics for PostgreSQL (
pg_stat_statements), MySQL/MariaDB (performance_schema), SQL Server (sys.dm_exec_query_stats), and TiDB (INFORMATION_SCHEMA.STATEMENTS_SUMMARY), with engine-specific setup guidance when the source view is unavailable - Role management: create, alter, and drop database roles
- Application resource usage in the status bar
Data Import and Export
- Export to CSV, JSON, SQL INSERT statements, or Excel (
.xlsx) with native type fidelity (numbers, booleans, and ISO-8601 datetimes round-trip) - Import from CSV and Excel (
.xlsx,.xls) with multi-sheet picker, per-column type inference, and column mapping - Backup and restore databases with cross-connection support
- Uses native tools (pg_dump, mysqldump) when available
Visual Tools
- Entity-relationship diagram viewer with pan, zoom, and search
- Chart view for turning SELECT results into visualizations
- JSON column viewer and editor with structured tree navigation
- Light and dark themes with zoom control
- Tabbed interface for working with multiple tables and queries side by side
Installation
Quick Install (Linux)
curl -fsSL https://tablio.dasunnimantha.com/install.sh | bash
Automatically detects your distro and installs via APT (Debian/Ubuntu), RPM (Fedora/RHEL/SUSE), or AppImage (other).
Download
Grab the latest build from Releases:
| Platform | Formats |
|---|---|
| Linux | .deb, .rpm, .AppImage |
| macOS | .dmg (Intel and Apple Silicon) |
| Windows | .msi, .exe |
APT Repository (Debian/Ubuntu)
# Import the signing key
curl -fsSL https://dasunnimantha.github.io/tablio/apt/key.gpg | sudo gpg --dearmor -o /usr/share/keyrings/tablio.gpg
# Add the repository
echo "deb [signed-by=/usr/share/keyrings/tablio.gpg] https://dasunnimantha.github.io/tablio/apt stable main" \
| sudo tee /etc/apt/sources.list.d/tablio.list
# Install
sudo apt update && sudo apt install tablio
Updates are delivered through apt upgrade with each new release.
RPM Repository (Fedora/RHEL/SUSE)
# Import the signing key
sudo rpm --import https://dasunnimantha.github.io/tablio/rpm/key.gpg
# Add the repository
sudo curl -fsSL -o /etc/yum.repos.d/tablio.repo https://dasunnimantha.github.io/tablio/rpm/tablio.repo
# Install
sudo dnf install tablio
Updates are delivered through dnf upgrade tablio with each new release.
Build from Source
Prerequisites:
sudo apt install libwebkit2gtk-4.1-dev libsoup-3.0-dev \
libjavascriptcoregtk-4.1-dev librsvg2-dev
git clone --single-branch --branch master https://github.com/dasunNimantha/tablio.git
cd tablio
npm install
npm run tauri build
Note: Always clone (or fork) with
--single-branch --branch master. Thegh-pagesbranch hosts the APT/RPM repositories and contains every released.deband.rpmbinary, so a default full clone pulls hundreds of megabytes of package history that you don't need to build the app.
Development
npm install
npm run tauri dev
Starts both the Vite dev server and the Tauri Rust backend with hot-reload.
Running Tests
# Frontend
npm test
# Backend (SQLite tests run locally; others need running instances)
cd src-tauri && cargo test
# With real databases
TEST_POSTGRES_URL="postgres://user:pass@localhost/testdb" \
TEST_MYSQL_URL="mysql://user:pass@localhost/testdb" \
TEST_MARIADB_URL="mysql://user:pass@localhost:3307/testdb" \
TEST_COCKROACHDB_URL="postgres://root@localhost:26257/testdb?sslmode=disable" \
TEST_TIDB_URL="mysql://root@localhost:4000/testdb" \
TEST_MSSQL_URL="mssql://sa:Password@localhost:1433/testdb" \
TEST_CASSANDRA_HOST="127.0.0.1" TEST_CASSANDRA_PORT="9042" \
cargo test
Architecture
tablio/
├── src/ # React + TypeScript frontend
│ ├── components/ # DataGrid, QueryConsole, ERD, Sidebar
│ ├── stores/ # Zustand state (tabs, connections)
│ └── lib/ # Themes, Tauri IPC bridge, utilities
├── src-tauri/
│ ├── src/
│ │ ├── db/ # DatabaseDriver trait + dedicated drivers per engine
│ │ │ ├── postgres.rs, cockroachdb.rs, pg_common.rs
│ │ │ ├── mysql.rs, mariadb.rs, tidb.rs, mysql_common.rs
│ │ │ ├── mssql.rs
│ │ │ ├── cassandra.rs
│ │ │ └── sqlite.rs
│ │ ├── commands/ # Tauri IPC command handlers
│ │ └── lib.rs # Command registration
│ └── tests/ # Integration tests per database engine
└── .github/workflows/ # CI and release pipeline
| Layer | Stack |
|---|---|
| Backend | Rust, sqlx, tiberius, scylla, russh, rust_xlsxwriter, calamine, Tokio, Tauri 2 |
| Frontend | React, TypeScript, AG Grid, Monaco Editor, Chart.js |
| State | Zustand with localStorage persistence |
| IPC | Tauri invoke commands |
| Build | Vite, cargo, GitHub Actions |
Connection Management
Tablio uses sqlx connection pools for PostgreSQL, CockroachDB, MySQL, MariaDB, TiDB, and SQLite. MSSQL uses a single tiberius client connection.
Pool Settings
| Setting | Value | Rationale |
|---|---|---|
| Max connections | 4 | Sufficient for a single-user desktop app running queries, browsing data, and fetching metadata concurrently |
| Min connections | 0 | No connections are kept alive when idle; the pool scales down to zero |
| Idle timeout | 30 minutes | Idle connections are closed after 30 minutes of inactivity, matching DBeaver's production connection type default |
Per-Database Connection Pools
PostgreSQL and CockroachDB support connecting to multiple databases on the same server. Tablio creates a separate connection pool per database, stored in a RwLock<HashMap<String, Pool>>. When the user switches to a different database in the sidebar, a new pool is created on demand and cached for reuse.
Optional Database Name
The database field is optional when creating a connection. When no database is specified:
- PostgreSQL defaults to the
postgresmaintenance database - CockroachDB defaults to
defaultdb(implicit server behavior) - MySQL/MariaDB/TiDB connect to the server without selecting a database; the user can browse and select one from the sidebar
- SQL Server connects to the default database configured for the login
This allows users to connect to a server first and then explore available databases, similar to pgAdmin's workflow.
Query Console Result Editing
When a query is executed in the SQL console, Tablio detects if the result is editable:
- The SQL is parsed to check if it targets a single table (no JOINs, UNIONs, subqueries, or CTEs)
- If a single table is detected, column metadata is fetched to find primary key columns
- If all PK columns are present in the SELECT result, the grid becomes editable with Save writing changes back to the database via UPDATE/INSERT/DELETE statements
- Otherwise the grid is read-only (cells are non-editable, Add Row/Delete/Save buttons are hidden)
A badge in the result toolbar shows "Editable" or "Read-only" with a tooltip explaining why.
License
探索相关项目
Asabeneh/30-Days-Of-Python
30 Days of Python 编程挑战是一份循序渐进的指南,用于在 30 天内学习 Python 编程语言。这项挑战可能需要超过 100 天。请按自己的节奏进行。这些视频或许也有帮助:https://www.youtube.com/channel/UC7PNRuno1rzYPb1xLa4yktw
78,560 星标grafana/grafana
开放且可组合的可观测性与数据可视化平台。可对来自 Prometheus、Loki、Elasticsearch、InfluxDB、Postgres 等众多数据源的指标、日志和追踪进行可视化。
77,830 星标redis/redis
对于正在构建实时数据驱动应用的开发者而言,Redis 是首选、速度最快且功能最丰富的缓存、数据结构服务器和文档与向量查询引擎。
77,395 星标apache/superset
Apache Superset 是一个数据可视化与数据探索平台
75,473 星标