dasunNimantha/tablio
dasunNimantha/tablio has 47 GitHub stars and 4 forks. GitHot measured +1 stars in 24 hours. Last checked 2026-11-09 22:14 UTC. Last push 2026-11-05.
Open-source, cross-platform desktop database client for PostgreSQL, MySQL, MariaDB, SQLite, CockroachDB, TiDB, and Cassandra/ScyllaDB.
측정된 스타 증가
- in 24h
- +1
- in 7 days
- 업데이트 지연
- in 15 days
- 업데이트 지연
- in 1 month
- 업데이트 지연
서로 겹치는 기간의 순증가량이며 일별 합계가 아닙니다. 측정값이 없으면 비워 둡니다. 스타는 관심도를 나타내며 품질을 보장하지 않습니다.
README.md
Original
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 프로그래밍 챌린지는 Python 프로그래밍 언어를 30일 동안 배우기 위한 단계별 가이드입니다. 이 챌린지는 100일 이상 걸릴 수 있습니다. 자신의 속도에 맞춰 진행하세요. 다음 동영상도 도움이 될 수 있습니다: https://www.youtube.com/channel/UC7PNRuno1rzYPb1xLa4yktw
78,486 스타grafana/grafana
개방적이고 조합 가능한 옵저버빌리티 및 데이터 시각화 플랫폼입니다. Prometheus, Loki, Elasticsearch, InfluxDB, Postgres 등 여러 소스의 메트릭, 로그, 트레이스를 시각화합니다.
77,790 스타redis/redis
실시간 데이터 기반 애플리케이션을 구축하는 개발자에게 Redis는 가장 선호되고, 가장 빠르며, 기능이 가장 풍부한 캐시, 데이터 구조 서버이자 문서 및 벡터 쿼리 엔진입니다.
77,332 스타apache/superset
Apache Superset는 데이터 시각화 및 데이터 탐색 플랫폼입니다.
75,455 스타