# Datui






[](https://github.com/derekwisong/datui/actions)
**Datui** is a high-performance terminal UI for exploring and analyzing tabular datasets.
📖 **Documentation**: [Full User Guide][docs].
## Demo

## Features
- 🚀 **Fast**: Powered by Polars streaming expressions for state-of-the-art performance on
massive datsets
- 📁 **Universal**: Supports Parquet, CSV, JSON, Avro, Arrow, ORC, and Excel
- 🧰 **Flexible**: View data stored locally, on S3, or over HTTP/HTTPS
- 🔍 **Queryable**: Fuzzy keyword search and SQL queries
- 📊 **Charts**: Render terminal-based charts and export them as images
- 🔬 **Analysis**: Integrated analytical tools reveal correlations, distributions, and more
- ⚒️ **Transformations**: Sort, filter, pivot, melt, and group
- ⌨️ **Keyboard-Driven**: Arrow keys and Vim-style navigation (`h`/`j`/`k`/`l`)
## Installation
> Visit the [Install Guide][install-guide] for additional installation details
### ✨ Quick Install for Linux and macOS
```bash
**or via cargo:**
```
cargo install datui
```
*Don't like piping to shell? See the alternative methods below.*
### Pre-built Releases
Get the pre-built binary for your platform from the [Latest Release](https://github.com/derekwisong/datui/releases/latest).
### Package Managers
> See [Package Managers][pkg-managers]
- **Arch Linux (AUR)**:
```bash
paru -S datui-bin
```
- **macOS (Homebrew)**:
```bash
brew tap derekwisong/datui
brew install datui
```
- **Windows (WinGet)**:
```powershell
winget install derekwisong.datui
```
- **Pip** (See [Python Module][python-module]):
```
pip install datui
```
### From Source
> See [Compiling][compiling]
```bash
git clone https://github.com/derekwisong/datui.git
cd datui
cargo build --release --locked
```
The binary will be available at `target/release/datui`.
## Quick Start
> See the [Quick Start Guide][quickstart-guide]
- 💻 Load a file, or hive-partitioned dataset, from the shell:
```bash
datui /path/to/data.parquet
datui --hive /path/to/directory
datui --hive "/path/to/directory/**/*.parquet"
```
> See [Loading Data][loading-data]
- ☁️ Load data from **S3** and **HTTP**:
```bash
datui s3://some-bucket/file.parquet
datui gs://some-bucket/file.parquet
datui https://www.domain.com/file.csv
```
> See [Loading Remote Data][loading-remote]
- 🐍 View data from Python:
```python
import polars as pl
import datui
lf = pl.scan_parquet("/path/to/data.parquet")
datui.view(lf)
```
> See [Python Module][python-module]
- Use arrow keys or Vim-style keybinds (`h`/`j`/`k`/`l`) to navigate
- Press `q` to exit
> 💡 Use `?` or `F1` to show help
## Configuration
> See the [Configuration Guide][config-guide]
Generate a default [TOML](https://toml.io) config file:
```bash
datui --generate-config
```
## For Developers
### Setup
See the [Setup Script][setup-script] guide to quickly get configured.
### Contributing
Contributions are welcome! Please see [Contributing][contributing] for more.
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
---
> If you encounter any issues or have feature requests, please
> [open an issue on GitHub](https://github.com/derekwisong/datui/issues).
[docs]: https://derekwisong.github.io/datui/
[config-guide]: https://derekwisong.github.io/datui/latest/user-guide/configuration.html
[install-guide]: https://derekwisong.github.io/datui/latest/getting-started/installation.html
[quickstart-guide]: https://derekwisong.github.io/datui/latest/getting-started/quick-start.html
[pkg-managers]: https://derekwisong.github.io/datui/latest/getting-started/installation.html#package-managers
[compiling]: https://derekwisong.github.io/datui/latest/getting-started/installation.html#compiling-from-source
[contributing]: https://derekwisong.github.io/datui/latest/for-developers/contributing.html
[setup-script]: https://derekwisong.github.io/datui/latest/for-developers/setup-script.html
[python-module]: https://derekwisong.github.io/datui/latest/user-guide/python-module.html
[loading-remote]: https://derekwisong.github.io/datui/latest/user-guide/loading-data.html#remote-data-s3-gcs-and-http
[loading-data]: https://derekwisong.github.io/datui/latest/user-guide/loading-data.html