databow
A command-line tool for querying databases via ADBC.
Highlights
- Multi-database support - Connect to any database with a compatible ADBC driver
- Interactive SQL shell - Execute SQL queries with command history and intuitive navigation
- Syntax highlighting - SQL queries highlighted for improved readability
- Formatted output - Results displayed in clean, aligned tables with dynamic column width
- File export - Export query results to JSON, JSON lines, CSV, Arrow IPC, or Parquet files
- Fast and lightweight - Built in Rust for high performance and minimal resource usage
Installation
Install with uv:
uv tool install databow
Install with Cargo:
cargo install databow
Install with Homebrew:
brew install columnar-tech/tap/databow
Getting Started
Install the DuckDB ADBC driver with dbc:
dbc install duckdb
Interactive Usage
Connect to DuckDB (in-memory):
databow --driver duckdb
Execute SQL queries:
> CREATE TABLE penguins AS FROM 'https://blobs.duckdb.org/data/penguins.csv';
┌───────┐
│ Count │
├───────┤
│ 344 │
└───────┘
> SELECT *
. FROM penguins
. LIMIT 5;
┌─────────┬───────────┬────────────────┬───────────────┬───────────────────┬─────────────┬────────┬──────┐
│ species │ island │ bill_length_mm │ bill_depth_mm │ flipper_length_mm │ body_mass_g │ sex │ year │
├─────────┼───────────┼────────────────┼───────────────┼───────────────────┼─────────────┼────────┼──────┤
│ Adelie │ Torgersen │ 39.1 │ 18.7 │ 181 │ 3750 │ male │ 2007 │
│ Adelie │ Torgersen │ 39.5 │ 17.4 │ 186 │ 3800 │ female │ 2007 │
│ Adelie │ Torgersen │ 40.3 │ 18 │ 195 │ 3250 │ female │ 2007 │
│ Adelie │ Torgersen │ NA │ NA │ NA │ NA │ NA │ 2007 │
│ Adelie │ Torgersen │ 36.7 │ 19.3 │ 193 │ 3450 │ female │ 2007 │
└─────────┴───────────┴────────────────┴───────────────┴───────────────────┴─────────────┴────────┴──────┘
Non-interactive Usage
Execute a query directly and exit:
databow --driver duckdb --query "SELECT 42 AS the_answer"
Execute a query from stdin and exit:
echo "SELECT 42 AS the_answer" | databow --driver duckdb
Execute a query from a file and exit:
databow --driver duckdb --file select_example.sql
Execute a query and output the result to a file:
databow --driver duckdb --query "SELECT 42 AS the_answer" --output result.json
databow --driver duckdb --query "SELECT 42 AS the_answer" --output result.jsonl
databow --driver duckdb --query "SELECT 42 AS the_answer" --output result.csv
databow --driver duckdb --query "SELECT 42 AS the_answer" --output result.arrow
databow --driver duckdb --query "SELECT 42 AS the_answer" --output result.arrows
databow --driver duckdb --query "SELECT 42 AS the_answer" --output result.parquet
Reference
$ databow --help
Query databases via ADBC
Usage: databow [OPTIONS]
Options:
--profile <profile> Connection profile name or path
--driver <driver> Driver name (inferred from --uri scheme or profile if not specified)
--uri <uri> Database uniform resource identifier
--username <username> Database user username
--password <password> Database user password
--option <key=value> Driver-specific database option
--statement-option <key=value> Driver-specific statement option
--mode <mode> Table display style [default: utf8-compact]
--query <query> Execute query and exit
--file <file> Read and execute file and exit
--output <file> Write result to file
-h, --help Print help
-V, --version Print version
License
This project is licensed under Apache-2.0.
Metadata
Release files for databow 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| databow-0.2.0.tar.gz | 69.8 kB | Details |
Built distributions (wheels)
Total release size: 57.4 MB
Release files / databow-0.2.0.tar.gz
| Download URL | databow-0.2.0.tar.gz |
|---|---|
| Size | 69.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d50e57900a0f975cecd5630cf253bfe84e395cda4cec5430ada00329018bd987
|
|
BLAKE2b-256 checksum How to use checksums |
af4574ebcd217c6113b30739d47f7f7496f093a2f017a0cbae7ca73567073588
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / databow-0.2.0-py3-none-win_arm64.whl
| Download URL | databow-0.2.0-py3-none-win_arm64.whl |
|---|---|
| Size | 3.4 MB |
| Tags | Python 3 Windows ARM64 |
|
SHA-256 checksum How to use checksums |
1c6a94518e5f7c0682240d387d903bea4854b5e0ca85c828817b1e6290238282
|
|
BLAKE2b-256 checksum How to use checksums |
88381cac27656a2123dc65b1a8f5e435c623900d9faced1272926fb925182bb9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / databow-0.2.0-py3-none-win_amd64.whl
| Download URL | databow-0.2.0-py3-none-win_amd64.whl |
|---|---|
| Size | 3.6 MB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
d1aa6b09d2fd5436ad9a5110a8ea7aa2257a7c37915a916c3c9954ca2876177a
|
|
BLAKE2b-256 checksum How to use checksums |
515889ebfea99dcd5ee4a36ecf93fb7f4a188b82e3772520bb60ccab6ea9526b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / databow-0.2.0-py3-none-win32.whl
| Download URL | databow-0.2.0-py3-none-win32.whl |
|---|---|
| Size | 3.3 MB |
| Tags | Python 3 Windows x86-32 |
|
SHA-256 checksum How to use checksums |
896e37475d1f8797c719c5ca779eeb316cb9b065c76a366b2840466acf4e40cd
|
|
BLAKE2b-256 checksum How to use checksums |
13a7dae49e75756d4eedec3b907d9a96a51c884830b906153325c930ff5445c0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / databow-0.2.0-py3-none-musllinux_1_2_x86_64.whl
| Download URL | databow-0.2.0-py3-none-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 3.9 MB |
| Tags | Linux musl 1.2+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
f09ff88e1ddda0d285199ba07eeaf5bf33218cbf0d26af6203fc65515ab0bec6
|
|
BLAKE2b-256 checksum How to use checksums |
13eb38bfcb8c89816d7bf81dc0e9ba325df63eec4ff9f38c4c286a29505a25fb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / databow-0.2.0-py3-none-musllinux_1_2_i686.whl
| Download URL | databow-0.2.0-py3-none-musllinux_1_2_i686.whl |
|---|---|
| Size | 3.8 MB |
| Tags | Linux musl 1.2+ x86-32 Python 3 |
|
SHA-256 checksum How to use checksums |
730e8c60fa9a43e7ff855382c55a4d770a55456c8a7b7bf4baa056ed2f7efa6e
|
|
BLAKE2b-256 checksum How to use checksums |
002acd272c31601acf2cb53d1bc212cbd67ee7dba3b464ab79cdd1afa3c38829
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / databow-0.2.0-py3-none-musllinux_1_2_armv7l.whl
| Download URL | databow-0.2.0-py3-none-musllinux_1_2_armv7l.whl |
|---|---|
| Size | 3.5 MB |
| Tags | Linux musl 1.2+ ARMv7l Python 3 |
|
SHA-256 checksum How to use checksums |
e01658e13fc228b2620eb542c3403742868cb2bc167d80bc3c5dec5fd6500bee
|
|
BLAKE2b-256 checksum How to use checksums |
607d7a579252a66df40d8095fe079c346fd0e85ce95b5f15976fce8bef9856d3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / databow-0.2.0-py3-none-musllinux_1_2_aarch64.whl
| Download URL | databow-0.2.0-py3-none-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 3.6 MB |
| Tags | Linux musl 1.2+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
f5d07a4e601a64b81ce102983af738f76404208272c86edd29e07b78ae564d2b
|
|
BLAKE2b-256 checksum How to use checksums |
05065cc99e1ee7db2a8a98cc35c336d6df965c680b0d2e3cd308a1f3af290a0a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / databow-0.2.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | databow-0.2.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 4.0 MB |
| Tags | Linux glibc 2.17+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
0c306e1e979c4beeeb5c812547c0cf2a3ac784af54695fa3c9a887279e1d5943
|
|
BLAKE2b-256 checksum How to use checksums |
9b094740db9d31a6e1ecb663f0824800e065dac62ae09be86e8062619080a5e8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / databow-0.2.0-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl
| Download URL | databow-0.2.0-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl |
|---|---|
| Size | 4.0 MB |
| Tags | Linux glibc 2.17+ IBM System/390x Python 3 |
|
SHA-256 checksum How to use checksums |
c4082970f60e447805c2f32093060cc0f80006c29f377b17fe9fb106e4d1717d
|
|
BLAKE2b-256 checksum How to use checksums |
675ff1b31373ff52acf127d8bc392dd9e0a5e868143a57fd970d8a1573fcc255
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / databow-0.2.0-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
| Download URL | databow-0.2.0-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl |
|---|---|
| Size | 5.9 MB |
| Tags | Linux glibc 2.17+ PowerPC 64-le Python 3 |
|
SHA-256 checksum How to use checksums |
4ccd546e65acf4662ba09108848f27d218a96f61a6b9e3a0caf0ac161890c691
|
|
BLAKE2b-256 checksum How to use checksums |
af328072829bd9fc4a07a0c409b117caea47f5f70cbc031a82d06760a3cd53fc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / databow-0.2.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl
| Download URL | databow-0.2.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl |
|---|---|
| Size | 4.0 MB |
| Tags | Linux glibc 2.17+ x86-32 Python 3 |
|
SHA-256 checksum How to use checksums |
6072fea2604267123a3f45135841d2b7873feb805d72d4f5983d0a427008f365
|
|
BLAKE2b-256 checksum How to use checksums |
5a665c9b7048e119d85efb6c1f6b8f75dfdbe9d50969d285a8d5bb37b3e0fad9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / databow-0.2.0-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
| Download URL | databow-0.2.0-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl |
|---|---|
| Size | 3.5 MB |
| Tags | Linux glibc 2.17+ ARMv7l Python 3 |
|
SHA-256 checksum How to use checksums |
bb60ff7a0a20b503c89835d43270ddcb1dcdf3d15a1ac19d837ad5d3be7dd4b4
|
|
BLAKE2b-256 checksum How to use checksums |
da76b745f893ac6dde2cb72dbce6e6ab5e549342275c968d9b612343987af2c7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / databow-0.2.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | databow-0.2.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 3.6 MB |
| Tags | Linux glibc 2.17+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
677c8e8ef2196780d0f5c6655153bf8db00739f43ccd9e40c5bc709e4ac8ab94
|
|
BLAKE2b-256 checksum How to use checksums |
0873172fa04027d75f662f3fc505161abc5c7234c6b4ca6a362c04f7e8cce696
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / databow-0.2.0-py3-none-macosx_11_0_arm64.whl
| Download URL | databow-0.2.0-py3-none-macosx_11_0_arm64.whl |
|---|---|
| Size | 3.5 MB |
| Tags | Python 3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
eb0ea28b35303a1c54ca38bd7881b8001b3d3d0daa8ef61cf7f77629db21e21e
|
|
BLAKE2b-256 checksum How to use checksums |
8195e09930422e2a9b60ac835afc2d45faedb990c2056b3ac9ce9563777a7d74
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / databow-0.2.0-py3-none-macosx_10_12_x86_64.whl
| Download URL | databow-0.2.0-py3-none-macosx_10_12_x86_64.whl |
|---|---|
| Size | 3.6 MB |
| Tags | Python 3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
78344b87f78422cd5a2d6872352419ca723ec3a51dcf0849c1c04475213e74b9
|
|
BLAKE2b-256 checksum How to use checksums |
a2364b59b2cad129a14e1d5dc88f029aa2df680418927224a4a11716ad5da3f6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|