Native cross-platform database manager.
PostgreSQL · MySQL · MariaDB · Redis · Valkey · MongoDB · SQLite · Cassandra · Scylla · SQL Server · Oracle · ClickHouse — one binary, no Electron.
A native, lightweight, cross-platform database manager built with Rust and Slint — in the spirit of TablePlus but compiled from a single codebase for macOS and Linux.
Where RDB is headed and why — see VISION.md.
- Multi-engine — PostgreSQL, MySQL, MariaDB, Redis, Valkey, MongoDB, SQLite, Cassandra, SQL Server, Oracle, ClickHouse in one app
- Native UI — GPU-rendered via Slint (no webview, no Chromium, no Electron)
- Fast & light — no GC, no runtime; aggressive release optimization (LTO,
opt-level=z,panic=abort) - Secure connections — passwords stored in OS keychain (macOS Keychain, libsecret) with AES-GCM encrypted-file fallback
- Schema browser — sidebar tree: databases → tables/collections/keys → columns/fields
- Tabbed query editor — multiple tabs per session, one per engine
- Results grid — resizable columns, client-side row filtering, copy support
- Command palette —
Cmd+Kto jump to any connection or table instantly - DSN import — paste a connection URL, fields auto-fill
- Connection test — verify creds before saving
- Light / dark mode toggle
| Engine | Protocol | Result type |
|---|---|---|
| PostgreSQL | tokio-postgres |
Tabular |
| MySQL | mysql_async |
Tabular |
| MariaDB | mysql_async (MySQL-protocol-compatible) |
Tabular |
| Redis | redis crate |
Key-value / raw |
| Valkey | redis crate (RESP-compatible) |
Key-value / raw |
| MongoDB | mongodb crate |
Documents (JSON) |
| SQLite | rusqlite |
Tabular |
| Cassandra | scylla |
Tabular |
| SQL Server | tiberius |
Tabular |
| Oracle | oracle (ODPI-C) |
Tabular |
| ClickHouse | clickhouse (HTTP) |
Tabular |
Oracle needs the Oracle Instant Client. It is the one engine RDB cannot reach with the binary alone: Oracle ships no public wire-protocol spec, so the driver goes through Oracle's own client library, which is loaded at runtime and is not redistributable. Install the Basic or Basic Light package from Oracle's Instant Client downloads and put it on the library path (
DYLD_LIBRARY_PATHon macOS,LD_LIBRARY_PATHon Linux,PATHon Windows). Nothing is needed to build RDB — only to connect to Oracle — and every other engine stays dependency-free.Known gap: Oracle 21c+ native
JSONcolumns are not readable yet (rust-oracle#107); read them asJSON_SERIALIZE(<col> RETURNING VARCHAR2).
The UI (app/) depends only on rdb-core. It never imports a concrete driver crate. Adding a new engine = a new driver-* crate that implements the Driver trait; the UI is untouched.
Slint's event loop runs on the main thread. All I/O (connect, query, schema fetch) spawns on a tokio multi-thread runtime. Results return to the UI thread via invoke_from_event_loop.
#[async_trait]
pub trait Driver: Send + Sync {
async fn connect(cfg: &ConnConfig) -> Result<Self> where Self: Sized;
async fn ping(&self) -> Result<()>;
async fn schema(&self) -> Result<Schema>;
async fn query(&self, q: &Query) -> Result<ResultSet>;
async fn close(self) -> Result<()>;
}pub enum Query {
Sql(String), // PostgreSQL, MySQL, MariaDB, SQLite, SQL Server, Oracle, ClickHouse
Cql(String), // Cassandra/ScyllaDB
Command(Vec<String>), // Redis/Valkey: ["GET", "key"]
Mongo(MongoOp), // find / insert / aggregate
}pub enum ResultSet {
Tabular { cols: Vec<Column>, rows: Vec<Row> },
Documents(Vec<serde_json::Value>),
KeyValue(Vec<(String, RedisValue)>),
Affected(u64),
}Prebuilt installers are expected to be attached to GitHub Releases.
npm i -g @suiflex/rdbThe postinstall step downloads the prebuilt rdb binary for your platform from
the matching GitHub Release, then rdb launches it. On macOS it also installs
RDB.app into ~/Applications so it shows up in Launchpad.
curl -fsSL https://raw.githubusercontent.com/suiflex/rdb/develop/scripts/install.sh | bashOptional:
curl -fsSL https://raw.githubusercontent.com/suiflex/rdb/develop/scripts/install.sh | RDB_VERSION=v0.1.0 INSTALL_DIR="$HOME/.local/bin" bashOn macOS the script installs RDB.app into Applications (Launchpad) and symlinks
the rdb command into ~/.local/bin. On Linux it installs the rdb binary into
/usr/local/bin when writable, otherwise ~/.local/bin.
For the macOS app (Launchpad):
brew install --cask suiflex/tap/rdbFor the CLI binary only:
brew install suiflex/tap/rdbUpgrade later with brew upgrade rdb.
macOS Gatekeeper note: the
.appis ad-hoc signed (no paid Apple Developer notarization). The cask andinstall.shboth strip the quarantine flag automatically, so a normal install just works. If you downloaded the.dmgstraight from a GitHub Release and macOS says the app is damaged / rejected, clear it yourself:xattr -dr com.apple.quarantine /Applications/RDB.app
irm https://raw.githubusercontent.com/suiflex/rdb/develop/scripts/install.ps1 | iexOptional:
$env:RDB_VERSION="v0.28.0"; $env:INSTALL_DIR="$env:LOCALAPPDATA\Programs\RDB\bin"; irm https://raw.githubusercontent.com/suiflex/rdb/develop/scripts/install.ps1 | iexThe script installs rdb.exe into
%LOCALAPPDATA%\Programs\RDB\bin by default and warns if that directory is not
on PATH.
scoop bucket add suiflex https://github.com/suiflex/scoop-bucket
scoop install rdbUpgrade later with scoop update rdb.
| Tool | Version |
|---|---|
| Rust | stable (see rust-toolchain.toml) |
| Cargo | bundled with Rust |
No additional native dependencies needed on macOS. Linux requires a few system packages for Slint rendering (see below).
# Debian / Ubuntu
sudo apt install libxkbcommon-dev libfontconfig1-dev libgl1-mesa-dev
# Fedora / RHEL
sudo dnf install libxkbcommon-devel fontconfig-devel mesa-libGL-devel# Development
cargo build -p rdb
# Optimized release (~smaller binary)
cargo build --release -p rdb
# Run directly
cargo run -p rdbThe release binary lands at target/release/rdb.
- Launch RDB — connection picker opens.
- Click + → fill in host, port, credentials, database.
- Or paste a DSN URL into the Import URL field — fields auto-fill.
- Click Test to verify, then Save.
- Click a saved connection → connects, schema loads in sidebar.
- Type a query for the connected engine — syntax differs per engine, see below.
Cmd+Enter(macOS) /Ctrl+Enter(Linux) to run.- Click a table/collection in the sidebar to auto-generate and run a
SELECT */findquery.
| Engine | Language | Example |
|---|---|---|
| PostgreSQL, MySQL, MariaDB, SQLite, SQL Server, Oracle, ClickHouse | SQL | SELECT * FROM users |
| Cassandra | CQL (no JOIN/subquery/HAVING) | SELECT * FROM keyspace.table |
| Redis, Valkey | command tokens | GET user:1, SET user:1 value |
| MongoDB | mongosh chain | db.users.find({ age: { $gt: 20 } }).limit(5)use('shop')db.getCollection('fs.files').find({}).sort({ _id: -1 }) |
More detail (including MongoDB's supported methods/modifiers) is on the docs page.
Cmd+K — fuzzy-search all connections and schema objects.
Type in the Filter box above the grid — filters rows client-side without re-querying.
Active development. Ships 11 engines (PostgreSQL, MySQL, MariaDB, Redis, Valkey, MongoDB, SQLite, Cassandra, SQL Server, Oracle, ClickHouse); planned expansion to ~20 (BigQuery and more).
| Crate | Description |
|---|---|
rdb |
Desktop binary (app/) |
rdb-core |
Driver trait, Query, ResultSet, Schema, RdbError |
rdb-connstore |
Saved connections — JSON on disk + OS keychain / AES-GCM file |
rdb-driver-postgres |
PostgreSQL driver via tokio-postgres |
rdb-driver-mysql |
MySQL/MariaDB driver via mysql_async |
rdb-driver-redis |
Redis/Valkey driver via redis crate |
rdb-driver-mongo |
MongoDB driver via mongodb crate |
rdb-driver-sqlite |
SQLite driver via rusqlite |
rdb-driver-cassandra |
Cassandra driver via scylla |
rdb-driver-mssql |
SQL Server driver via tiberius |
rdb-driver-oracle |
Oracle driver via oracle (ODPI-C) |
rdb-driver-clickhouse |
ClickHouse driver via the clickhouse HTTP crate |
Apache-2.0