Home

Awesome

<p align="center"><img width="250" height="250" src="rsql_cli/resources/rsql.png"></p>

rsql

ci Documentation Code Coverage Benchmarks Latest version Github All Releases License Semantic Versioning

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.

Getting Started

rsql can be installed using the following methods:

Linux / MacOS

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/theseus-rs/rsql/releases/latest/download/rsql_cli-installer.sh | sh

Windows

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.

Features

Feature
DatabasesDuckDB, LibSQL (Turso), MariaDB, MySQL, PostgreSQL, Redshift, Snowflake, SQLite3, SQL Server
Syntax Highlighting
Result Highlighting
Query Auto-completion
History
SQL File Execution
Embedded PostgreSQL
Output Formatsascii, csv, expanded, html, json, jsonl, markdown, plain, psql, sqlite, tsv, unicode, xml, yaml
Localized Interface40+ languages¹
Key Bindingsemacs, vi

¹ Computer translations; human translations welcome

Usage

Interactive Mode

rsql --url "<url>"

Running a single Query

rsql --url "<url>" -- "<query>"
DriverURL
duckdbduckdb://?<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>
postgrespostgres://<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>
rusqliterusqlite://?<memory=true>[&file=<database_file>]
snowflakesnowflake://<user>[:<token>]@<account>.snowflakecomputing.com/[?private_key_file=pkey_file&public_key_file=pubkey_file]
sqlite (sqlx)sqlite://?<memory=true>[&file=<database_file>]
sqlserversqlserver://<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.

Safety

These crates use #![forbid(unsafe_code)] to ensure everything is implemented in 100% safe Rust.

License

Licensed under either of:

Contribution

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.

<a href="https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=https://github.com/theseus-rs/rsql"> <img src="https://img.shields.io/static/v1?label=VSCode%20Development%20Container&logo=visualstudiocode&message=Open&color=orange" alt="VSCode Development Container" /> </a> <br/> <a href="https://github.dev/theseus-rs/rsql"> <img src="https://img.shields.io/static/v1?label=GitHub%20Codespaces&logo=github&message=Open&color=orange" alt="GitHub Codespaces" /> </a>