https://github.com/relwave/relwave-app
A modern, cross-platform database management and visualization tool Built with Tauri, React, and TypeScript
https://github.com/relwave/relwave-app
database database-management desktop-application tools visualizer
Last synced: 3 months ago
JSON representation
A modern, cross-platform database management and visualization tool Built with Tauri, React, and TypeScript
- Host: GitHub
- URL: https://github.com/relwave/relwave-app
- Owner: Relwave
- License: mit
- Created: 2025-11-17T16:34:42.000Z (8 months ago)
- Default Branch: master
- Last Pushed: 2026-02-10T18:19:11.000Z (5 months ago)
- Last Synced: 2026-02-10T21:52:50.840Z (5 months ago)
- Topics: database, database-management, desktop-application, tools, visualizer
- Language: TypeScript
- Homepage: https://relwave.tech
- Size: 3.2 MB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README

# RelWave
### Modern Database Management, Visualization & Version Control
A powerful, cross-platform desktop application for database management with native Git version control — built with Tauri, React, and TypeScript.
[](https://github.com/Relwave/relwave-app/releases)
[](LICENSE)
[](https://github.com/Relwave/relwave-app/releases)
[**Download**](https://github.com/Relwave/relwave-app/releases) · [**Features**](FEATURES.md) · [**Quick Start**](#quick-start) · [**Documentation**](#documentation)
---
## Overview
**RelWave** is a desktop-native database management tool that brings together schema exploration, data visualization, query building, and Git version control into a single cohesive interface. It connects directly to your databases using native drivers — no browser, no cloud dependency, no compromise.

Native Performance
Direct database connections without browser overhead

Secure by Design
Encrypted credentials with machine-level protection

Git Native
Built-in version control for database projects

Offline-First
Full functionality without internet dependency
## Features
For a comprehensive breakdown of all features, see the [Feature Reference](FEATURES.md).
### Database Management
- **Multi-database support** — PostgreSQL, MySQL, MariaDB, and SQLite with native drivers
- **Auto-discovery** — Detect local and Docker-based databases automatically
- **Connection URL parsing** — Import connections via standard database URLs
- **Schema Explorer** — Navigate tables, columns, indexes, and relationships
- **Row operations** — Insert, edit, and delete rows with foreign key support
- **Migration management** — Track, apply, and rollback schema migrations
### Git Version Control
- **Repository management** — Initialize and manage Git repositories from within the app
- **Staging and commits** — Stage files individually or in bulk with full diff preview
- **Branch operations** — Create, switch, and manage branches
- **Remote sync** — Push, pull, and fetch with remote repository support
- **Change tracking** — View file-level diffs and full commit history
- **Stash management** — Save and restore work-in-progress changes
- **Smart .gitignore** — Automatic generation and management of ignore rules
### Visual Tools
- **ER Diagrams** — Auto-generated, interactive entity-relationship diagrams
- **Visual Query Builder** — Drag-and-drop query construction with live SQL preview
- **Data Visualization** — Bar, line, pie, and scatter charts with export to PNG/SVG
- **SQL Workspace** — Multi-tab CodeMirror editor with syntax highlighting and execution
### Developer Experience
- **Multi-format export** — CSV, JSON, and SQL export for tables and query results
- **Query history** — Persistent history with instant replay
- **Automatic updates** — Background downloads with cryptographically signed releases
- **Customizable themes** — Light/dark modes with multiple accent color variants
## Quick Start
### Installation
| Platform | Formats | Notes |
| -------- | ------- | ----- |
| **Windows** | `.exe` · `.msi` | NSIS installer (recommended) or MSI package |
| **Linux** | `.deb` · `.AppImage` | Debian package or portable AppImage |
**[Download the latest release](https://github.com/Relwave/relwave-app/releases)**
### Build from Source
#### Prerequisites
- Node.js 18+
- pnpm
- Rust toolchain (for Tauri)
RelWave uses separate package manifests for the app and the bridge, so install dependencies in both locations.
#### Development
```bash
git clone https://github.com/Relwave/relwave-app.git
cd relwave-app
# Install app dependencies
pnpm install
# Install bridge dependencies
pnpm --dir bridge install
# Start development mode
pnpm tauri dev
```
#### Production Build
Install both dependency sets first:
```bash
pnpm install
pnpm --dir bridge install
```
**Windows:**
```bash
pnpm run bridge:package
pnpm tauri build
```
**Linux:**
```bash
sudo apt install libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf
pnpm run bridge:package
pnpm tauri build
```
The root `bridge:package` script delegates to the platform-specific bridge packaging command in `bridge/package.json` and prepares the bundled SQLite native binary in `src-tauri/resources/`.
## Documentation
### Architecture
RelWave uses a **bridge architecture** — a Tauri/React frontend communicates with a Node.js process over JSON-RPC via stdin/stdout. The bridge handles all database and Git operations using native drivers.
```
┌──────────────────────────┐
│ Tauri + React UI │
│ (TypeScript) │
│ │
│ Database Explorer │
│ ER Diagrams │
│ Query Builder │
│ Git Interface │
└────────────┬─────────────┘
│ JSON-RPC (stdio)
│
┌────────────┴─────────────┐
│ Node.js Bridge │
│ │
│ pg · mysql2 │
│ simple-git │
│ Query Cache │
└────────────┬─────────────┘
│
┌─────┴──────┐
│ │
Databases Git Repos
```
**Why this architecture?**
| Benefit | Description |
| ------- | ----------- |
| Performance | Native database drivers without complex Rust FFI bindings |
| Security | Process isolation prevents direct memory access vulnerabilities |
| Flexibility | New drivers and integrations added without modifying the Rust layer |
| Reliability | Independent process lifecycle — bridge crashes don't take down the UI |
### Project Structure
```
relwave-app/
├── src/ # React frontend
│ ├── components/ # Shared UI components
│ ├── features/ # Feature-based modules (database, git, etc.)
│ ├── lib/ # Shared libraries and utilities
│ ├── pages/ # Top-level page components
│ └── services/ # API communication layer
│
├── bridge/ # Node.js bridge process
│ ├── src/
│ │ ├── connectors/ # Database drivers (pg, mysql2, better-sqlite3)
│ │ ├── handlers/ # JSON-RPC request handlers
│ │ ├── services/ # Business logic (Git, DB)
│ │ └── queries/ # SQL query templates
│ └── __tests__/ # Bridge test suite
│
└── src-tauri/ # Tauri backend (Rust)
├── src/ # Application entry point and bridge management
└── resources/ # Bundled bridge executable and native bindings
```
### Configuration
**Connection storage locations:**
| Platform | Path |
| -------- | ---- |
| Windows | `%APPDATA%\relwave\databases.json` |
| Linux | `~/.config/relwave/databases.json` |
All credentials are encrypted using machine-specific keys. Connection strings and passwords are never stored in plain text.
**Environment variables:**
| Variable | Description | Default |
| -------- | ----------- | ------- |
| `RELWAVE_HOME` | Override configuration directory | — |
| `RELWAVE_LOG` | Enable debug logging | `false` |
| `RELWAVE_BRIDGE` | Custom bridge executable path | — |
## Testing
### Prerequisites
Start the test databases using Docker:
```bash
cd bridge
docker-compose -f docker-compose.test.yml up -d
```
Create `bridge/.env` with the test configuration:
```env
REAL_POSTGRES_HOST=localhost
REAL_POSTGRES_PORT=5432
REAL_POSTGRES_USER=testuser
REAL_POSTGRES_PASSWORD=testpass
REAL_POSTGRES_DATABASE=testdb
REAL_MYSQL_HOST=localhost
REAL_MYSQL_PORT=3306
REAL_MYSQL_USER=testuser
REAL_MYSQL_PASSWORD=testpass
REAL_MYSQL_DATABASE=testdb
REAL_MARIADB_HOST=localhost
REAL_MARIADB_PORT=3307
REAL_MARIADB_USER=testuser
REAL_MARIADB_PASSWORD=testpass
REAL_MARIADB_DATABASE=testdb
```
### Running Tests
```bash
cd bridge
pnpm test
```
### Coverage
| Area | Status |
| ---- | ------ |
| Database service operations | Covered |
| Connection management | Covered |
| PostgreSQL integration | Covered |
| MySQL integration | Covered |
| MariaDB integration | Covered |
| Query result caching | Covered |
| Encryption and persistence | Covered |
| Git operations (status, commit, branch, remote) | Covered |
| Git advanced features (push, pull, fetch, revert) | Covered |
## Contributing
Contributions are welcome. Whether fixing bugs, adding features, or improving documentation — all help is appreciated.
1. Fork the repository
2. Clone your fork: `git clone https://github.com/your-username/relwave-app.git`
3. Create a feature branch: `git checkout -b feature/your-feature-name`
4. Commit your changes: `git commit -m 'Add: description of change'`
5. Push to your fork: `git push origin feature/your-feature-name`
6. Open a Pull Request
**Guidelines:**
- Follow the existing TypeScript and React conventions
- Add tests for new functionality
- Update documentation when applicable
- Write clear, descriptive commit messages
- Provide context in Pull Request descriptions
## Technology Stack

Tauri

Rust

React 18

TypeScript

Node.js

Git
**Additional libraries:** Tailwind CSS, shadcn/ui, React Flow, Recharts, CodeMirror, React Query, simple-git, node-postgres, mysql2
### Acknowledgments
- [Freepik](https://www.freepik.com) — Logo design via [Flaticon](https://www.flaticon.com)
- [shadcn/ui](https://ui.shadcn.com/) — Component library
## License
This project is licensed under the MIT License. See [LICENSE](LICENSE) for details.
---
**Database Management · Visual Schema Tools · Git Version Control**
[Star on GitHub](https://github.com/Relwave/relwave-app) · [Download](https://github.com/Relwave/relwave-app/releases) · [Report Issues](https://github.com/Relwave/relwave-app/issues) · [Request Features](https://github.com/Relwave/relwave-app/issues)