rsql
is a command line interface for databases. rsql
is a modern, feature-rich, and user-friendly database client,
that has been designed to be easy to use, and to provide a consistent experience across all supported databases. The
project aims to provide reusable components for building other database clients.
rsql
can be installed using the following methods:
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/theseus-rs/rsql/releases/latest/download/rsql_cli-installer.sh | sh
irm https://github.com/theseus-rs/rsql/releases/latest/download/rsql_cli-installer.ps1 | iex
For more information, and additional installations instructions (cargo, homebrew, msi), visit the rsql site.
Feature | |
---|---|
Databases | DuckDB, LibSQL (Turso), MariaDB, MySQL, PostgreSQL, Redshift, Snowflake, SQLite3, SQL Server |
Embedded PostgreSQL | ✅ |
Syntax Highlighting | ✅ |
Result Highlighting | ✅ |
History | ✅ |
SQL File Execution | ✅ |
Output Formats | ascii, csv, expanded, html, json, jsonl, markdown, plain, psql, sqlite, tsv, unicode, xml, yaml |
Localized Interface | 40+ languages¹ |
Key Bindings | emacs, vi |
¹ Computer translations; human translations welcome
rsql --url "<url>"
rsql --url "<url>" -- "<query>"
Driver | URL |
---|---|
duckdb | duckdb://?<memory=true>[&file=<database_file>] |
libsql¹ | libsql://<host>?[<memory=true>][&file=<database_file>][&auth_token=<token>] |
mariadb (sqlx) | mariadb://<user>[:<password>]@<host>[:<port>]/<database> |
mysql (sqlx) | mysql://<user>[:<password>]@<host>[:<port>]/<database> |
postgres | postgres://<user>[:<password>]@<host>[:<port>]/<database>?<embedded=true> |
postgresql (sqlx) | postgresql://<user>[:<password>]@<host>[:<port>]/<database>?<embedded=true> |
redshift (sqlx) | redshift://<user[:password>]@<host>[:<port>]/<database> |
rusqlite | rusqlite://?<memory=true>[&file=<database_file>] |
snowflake | snowflake://<user>[:<token>]@<account>.snowflakecomputing.com/[?private_key_file=pkey_file&public_key_file=pubkey_file] |
sqlite (sqlx) | sqlite://?<memory=true>[&file=<database_file>] |
sqlserver | sqlserver://<user>[:<password>]@<host>[:<port>]/<database> |
¹ libsql
needs to be enabled with the libsql
feature flag; it is disabled by default as it conflicts
with rusqlite
.
These crates use #![forbid(unsafe_code)]
to ensure everything is implemented in 100% safe Rust.
Licensed under either of:
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.