Skip to content

Installation

Terminal window
curl -fsSL https://clement-tourriere.github.io/dbcrust/install.sh | sh

Customise:

Terminal window
# Specific version
DBCRUST_VERSION=v0.25.0 curl -fsSL https://clement-tourriere.github.io/dbcrust/install.sh | sh
# Custom directory
DBCRUST_INSTALL_DIR=/usr/local/bin curl -fsSL https://clement-tourriere.github.io/dbcrust/install.sh | sh

This installs two binaries: dbcrust (full name) and dbc (short alias).

Terminal window
uv tool install dbcrust # global tool
uvx dbcrust <url> # run without installing
uv add dbcrust # add to a project
Terminal window
pip install dbcrust
# or
pipx install dbcrust
  • Rust stable — install from rustup.rs
  • mise (optional but recommended) — manages Bun and dev tools
Terminal window
git clone https://github.com/clement-tourriere/dbcrust.git
cd dbcrust
# Option A: with mise (recommended for development)
mise install # installs Bun, commitizen, etc.
mise run build # release build
mise run build:dev # debug build (faster)
mise run install # build + install dbcrust and dbc into ~/.cargo/bin
# Option B: cargo only (CLI only, no GUI)
cargo install --path . --locked --force

The desktop GUI requires Bun (for the frontend) and Tauri prerequisites. Mise handles Bun automatically.

Terminal window
mise install # installs Bun
mise run gui:install # install frontend deps
mise run gui:dev # development mode
mise run gui:build # production build

See Desktop GUI for details.

Terminal window
mise run py:dev # maturin develop (editable install)
mise run py:build # build wheel
# or
pip install -e ./python

Enable tab-completion for URL schemes, container names, session names, and flags.

Terminal window
mkdir -p ~/.local/share/bash-completion/completions
dbcrust --completions bash > ~/.local/share/bash-completion/completions/dbcrust
dbc --completions bash > ~/.local/share/bash-completion/completions/dbc
source ~/.bashrc

After setup:

Terminal window
dbc pos[TAB] postgres://
dbc docker://[TAB] lists running containers
dbc session://[TAB] lists saved sessions
dbc --[TAB] shows flags
Terminal window
dbcrust --version
# Quick test (no external database needed)
dbcrust sqlite://:memory: --query "SELECT 'Hello DBCrust!' as message"
DatabaseVersionsURL scheme
PostgreSQL9.6+postgres://
MySQL5.7+mysql://
SQLite3.6+sqlite://
ClickHouse20.3+clickhouse://
MongoDB4.0+mongodb://, mongodb+srv://
Elasticsearch7.x+elasticsearch://, es://

File formats (via Apache DataFusion):

FormatURL scheme
Parquetparquet://
CSVcsv://
JSONjson://

Bare paths such as users.csv, warehouse.parquet, and app.sqlite are also accepted and inferred from the extension.

Special schemes:

SchemePurpose
docker://Connect to database containers
session://Saved sessions
recent://Recent connections
file://Interactive compatible-file picker
vault://HashiCorp Vault credentials

DBCrust can update itself. It detects how it was installed (uv tool, pipx, pip, cargo, standalone binary), checks GitHub for the latest release, and runs — or prints — the matching upgrade command:

Terminal window
dbcrust --update

Or update manually through your install channel:

Terminal window
# Pre-built binary — just re-run the installer
curl -fsSL https://clement-tourriere.github.io/dbcrust/install.sh | sh
# uv
uv tool upgrade dbcrust
# pipx
pipx upgrade dbcrust
# pip
pip install --upgrade dbcrust
# From source
git pull && mise run install # or: cargo install --path . --locked --force
Terminal window
# uv
uv tool uninstall dbcrust
# pip
pip uninstall dbcrust
# cargo
cargo uninstall dbcrust
# Remove config (optional)
rm -rf ~/.config/dbcrust