A fast, modern, cross-platform database client for developers
Explore the docs »
Report Bug
·
Request Feature
·
Discussions
Works on Windows · macOS · Linux
- About
- Features
- Supported Databases
- Screenshots
- Tech Stack
- Architecture
- Getting Started
- Usage
- Project Structure
- Roadmap
- Contributing
- License
- Acknowledgments
TableR is a lightweight, high-performance database client built with Tauri, React, and Rust. It provides a unified interface for managing multiple database systems while maintaining native performance and a modern user experience.
Designed for developers who need a reliable, fast, and feature-rich database tool without the bloat of traditional clients.
- Multi-database support - Connect to 7+ database types
- Secure credential storage - Passwords encrypted via OS keyring
- Connection testing - Validate connections before saving
- URI support - Import connection strings directly
- Hierarchical tree view - Navigate databases, schemas, and tables
- Smart filtering - Search and filter tables by name
- Quick actions - Right-click context menus for common operations
- Pagination - Configurable page sizes for large datasets
- Column sorting - Sort by any column ascending/descending
- Cell operations - Copy, edit, and nullify cell values
- Row statistics - View total row count and filtered results
- Monaco Editor - Same engine as VS Code
- Syntax highlighting - SQL dialect-aware highlighting
- IntelliSense - Auto-completion for tables, columns, keywords
- AI Assistant - AI-powered SQL generation (Ctrl+K)
- Query results - Tabular output with execution time
- Error detection - Inline error highlighting
- Column management - View and edit columns, types, constraints
- Index viewer - Explore indexes with column details
- Foreign keys - Visualize table relationships
- Change staging - Batch multiple changes before applying
- SQL preview - Review generated SQL before execution
- Unlimited tabs - Open multiple queries simultaneously
- Tab organization - Drag to reorder, close individually
- Session persistence - Restore tabs on restart
| Database | Version | Driver | Status |
|---|---|---|---|
| PostgreSQL | 9.6+ | SQLx | ✅ Full |
| MySQL | 5.7+ | SQLx | ✅ Full |
| SQLite | 3.x | SQLx | ✅ Full |
| MSSQL | 2017+ | SQLx | ✅ Full |
| ClickHouse | 21.8+ | SQLx | ✅ Full |
| LibSQL | Latest | SQLx | ✅ Full |
| MariaDB | 10.2+ | SQLx | ✅ Full |
Add your screenshots here
| Connection Manager | SQL Editor | Data Viewer |
|---|---|---|
![]() |
![]() |
![]() |
| Category | Technology | Purpose |
|---|---|---|
| Runtime | Tauri 2 | Desktop application framework |
| Backend | Rust + SQLx | Database drivers & connection pooling |
| Frontend | React 19 + TypeScript 5 | UI components |
| Styling | Tailwind CSS 4 | Utility-first CSS |
| Editor | Monaco Editor | Code editing |
| Data Grid | TanStack Table | Table state management |
| State | Zustand | Global state management |
| Icons | Lucide React | Icon library |
┌─────────────────────────────────────────────────────────────┐
│ TableR Application │
├─────────────────────────────────────────────────────────────┤
│ ┌─────────────────────────────────────────────────────┐ │
│ │ React Frontend (TypeScript) │ │
│ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌────────┐ │ │
│ │ │Connection│ │ SQL │ │ Data │ │Schema │ │ │
│ │ │ Manager │ │ Editor │ │ Viewer │ │Editor │ │ │
│ │ └──────────┘ └──────────┘ └──────────┘ └────────┘ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │ │
│ Tauri IPC Commands │
│ │ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ Rust Backend (SQLx) │ │
│ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌────────┐ │ │
│ │ │PostgreSQL│ │ MySQL │ │ SQLite │ │ MSSQL │ │ │
│ │ │ Driver │ │ Driver │ │ Driver │ │ Driver │ │ │
│ │ └──────────┘ └──────────┘ └──────────┘ └────────┘ │ │
│ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │
│ │ │ClickHouse│ │ LibSQL │ │ MariaDB │ │ │
│ │ │ Driver │ │ Driver │ │ Driver │ │ │
│ │ └──────────┘ └──────────┘ └──────────┘ │ │
│ └─────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
Ensure you have the following installed:
| Platform | Requirements |
|---|---|
| Windows | Visual Studio Build Tools |
| macOS | Xcode Command Line Tools |
| Linux | build-essential, libwebkit2gtk-4.1-dev, libssl-dev, libgtk-3-dev, libayatana-appindicator3-dev, librsvg2-dev |
Ubuntu/Debian:
sudo apt update
sudo apt install -y build-essential libwebkit2gtk-4.1-dev libssl-dev \
libgtk-3-dev libayatana-appindicator3-dev librsvg2-devFedora:
sudo dnf install -y webkit2gtk4.1-devel openssl-devel gtk3-devel \
libappindicator-gtk3-devel librsvg2-devel-
Clone the repository
git clone https://github.com/minhe51805/TabLer.git cd TabLer -
Install Node.js dependencies
npm install
-
Verify Rust installation
rustc --version cargo --version
Start the development server with hot reload:
npm run tauri devThis will:
- Build the Rust backend in debug mode
- Start the React frontend with Vite
- Launch the desktop application
Create a production build:
npm run tauri buildOutput artifacts will be in:
src-tauri/target/release/bundle/
| Category | Shortcut | Action |
|---|---|---|
| Editor | Ctrl+Enter |
Execute SQL query |
Ctrl+K |
AI SQL assistant | |
Ctrl+N |
New query tab | |
| Navigation | Ctrl+B |
Toggle sidebar |
Ctrl+Space |
Toggle AI panel | |
Ctrl+Shift+P |
Open command palette | |
| View | `Ctrl+`` | Toggle results pane |
Ctrl+0 |
Reset sidebar width | |
Ctrl+= |
Increase font size | |
Ctrl+- |
Decrease font size | |
| Tabs | Ctrl+W |
Close current tab |
Ctrl+Tab |
Switch to next tab | |
Ctrl+Shift+Tab |
Switch to previous tab |
TableR/
├── .github/ # GitHub workflows & templates
├── docs/ # Documentation
├── fixtures/ # Test fixtures
├── src/ # React frontend
│ ├── components/ # UI components
│ │ ├── AI/ # AI integration
│ │ ├── ConnectionForm/ # Connection dialog
│ │ ├── DataGrid/ # Data table component
│ │ ├── Sidebar/ # Database navigator
│ │ ├── SQLEditor/ # Monaco editor wrapper
│ │ └── TableStructure/ # Schema editor
│ ├── hooks/ # Custom React hooks
│ ├── stores/ # Zustand stores
│ ├── types/ # TypeScript definitions
│ ├── utils/ # Helper functions
│ ├── i18n.ts # Internationalization
│ └── App.tsx # Root component
├── src-tauri/ # Rust backend
│ ├── icons/ # App icons
│ ├── src/
│ │ ├── commands/ # Tauri IPC handlers
│ │ ├── database/ # Database drivers
│ │ └── storage/ # Connection persistence
│ ├── Cargo.toml # Rust dependencies
│ └── tauri.conf.json # Tauri configuration
├── index.html # HTML entry point
├── package.json # Node.js dependencies
├── tsconfig.json # TypeScript config
├── vite.config.ts # Vite bundler config
└── README.md # This file
- Multi-database support
- SQL editor with AI assistance
- Data viewer with pagination
- Schema editor
- Query history & bookmarks
- Export to CSV/JSON/SQL
- Database backup/restore
- Theme customization
- Visual query builder
- Real-time collaboration
- Plugin system
- Mobile companion app
See the open issues for a full list of proposed features and known issues.
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'feat: add AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Follow Conventional Commits
- Write tests for new features
- Update documentation as needed
- Ensure CI passes before requesting review
Please read our Contributing Guide and Code of Conduct for details.
Distributed under the GNU General Public License v3.0. See LICENSE for more information.
If you find TableR helpful, consider buying me a coffee! Your support helps keep this project alive and growing.
- Tauri Team - For the amazing desktop framework
- SQLx Contributors - For async Rust database drivers
- Monaco Editor - For the code editor component
- TanStack - For headless UI utilities
- Lucide - For beautiful icons
Built with ❤️ by minjev


