Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/shshemi/tabiew
A lightweight TUI application to view and query tabular data files, such as CSV, TSV, or parquet.
https://github.com/shshemi/tabiew
Last synced: 2 months ago
JSON representation
A lightweight TUI application to view and query tabular data files, such as CSV, TSV, or parquet.
- Host: GitHub
- URL: https://github.com/shshemi/tabiew
- Owner: shshemi
- License: mit
- Created: 2024-04-27T16:21:19.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2024-10-19T21:27:13.000Z (3 months ago)
- Last Synced: 2024-10-20T15:39:27.840Z (3 months ago)
- Language: Rust
- Homepage:
- Size: 4.11 MB
- Stars: 391
- Watchers: 3
- Forks: 12
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-rust - Tabiew
- awesome-rust - Tabiew - A lightweight TUI app to view and query CSV files. (Applications / Utilities)
- awesome-ratatui - tabiew - A lightweight TUI app to view and query CSV files. (๐ป Apps / ๐ Productivity and Utilities)
- fucking-awesome-rust - Tabiew - A lightweight TUI app to view and query CSV files. (Applications / Utilities)
- fucking-awesome-rust - Tabiew - A lightweight TUI app to view and query CSV files. (Applications / Utilities)
README
# Tabiew
Tabiew is a lightweight TUI application that allows users to view and query tabular data files, such as CSV, Parquet, Arrow, and ...
![Image Alt text](/images/screenshot.png "Screenshot")
## Features
- โจ๏ธ Vim-style keybindings
- ๐ ๏ธ SQL support
- ๐๏ธ Multi-table functionality
- ๐ Supports for CSV, Parquet, JSON, JSONL, Arrow, and FWF## Tutorial
For a guide on using Tabiew, including instructions on opening files, navigating tables, performing queries, and using inline queries, kindly visit the [tutorial page](https://github.com/shshemi/tabiew/blob/main/tutorial/tutorial.md).
## Keybindings๏ธ
|Key Combination|Functionality|
|-|-|
| `v`| Switch view|
| `k` or `Arrow Up`| Move up in the table or scroll up in sheet view|
| `j` or `Arrow Down`| Move down in the table or scroll down in sheet view|
| `h` or `Arrow Left`| Move to the previous item in sheet view|
| `l` or `Arrow Right`| Move to the next item in sheet view|
| `Page Up` or `Ctrl+b`| Move one page up|
| `Page Down` or `Ctrl+f`| Move one page down|
| `H`| Select previous tab|
| `L`| Select next tab|
| `Ctrl+u`| Move up half a page|
| `Ctrl+d`| Move down half a page|
| `Home` or `g`| Move to the first row|
| `End` or `G`| Move to the last row|
| `R`| Select a random row|
| `q`| Close current tab|
| `:`| Command mode|## Commands
|Command|Example|Description|
|-|-|-|
|`:Q` or `:query`|`:Q SELECT * FROM df`|Query the data in Structured Query Language(SQL). The table name is the file name without extension|
|`:S` or `:select`| `:S price, area, bedrooms, parking`|Query current data frame for columns/functions|
|`:F` or `:filter`| `:F price < 20000 AND bedrooms > 4`|Filter current data frame, keeping rows were the condition(s) match|
|`:O` or `:order`| `:O area`|Sort current data frame by column(s)|
|`:tabn`| `:tabn SELECT * FORM user WHERE balance > 1000`|Create a new tab with the given query|
|`:q` or `:quit` |`:q`| Return to table from sheet view otherwise quit|
|`:schema`| `:schema`| Show loaded data frame(s) alongside their path(s)|
|`:reset`| `:reset`| Reset the table to the original data frame|
|`:help`| `:help`| Show help menu|## Installation
There are various ways to install Tabiew:
### Arch Linux
You can install from the [official repositories](https://archlinux.org/packages/extra/x86_64/tabiew/) using [pacman](https://wiki.archlinux.org/title/pacman):
```bash
pacman -S tabiew
```### Debian-based
Download the `.deb` package from the [GitHub releases page](https://github.com/shshemi/tabiew/releases) and run:
```bash
sudo dpkg -i
```### RPM-based
Download the `.rpm` package from the [GitHub releases page](https://github.com/shshemi/tabiew/releases) and run:
```bash
sudo rpm -i
```### MacOS
Installing Tabiew using [Homebrew](https://brew.sh/) from Homebrew core:
```bash
brew update
brew install tabiew
```
or tap:
```bash
brew install shshemi/tabiew/tabiew
```Note: Please be aware that installing Tabiew from the tap involves compiling it from the source, which may take some time to complete.
### Cargo
Installing Tabiew from *Crates.io*:
```bash
cargo install tabiew
```### Build from Source
Ensure you have the rustc version 1.80 (or higher) installed, then:
```bash
git clone https://github.com/shshemi/tabiew.git
cd tabiew
cargo build --release
cp ./target/release/tw
```## Usage
Start Tabiew with `tw`
```bash
tw
```
Options:
- `--no-header`: Use this option if the CSV file does not contain a header row.
- `--ignore-errors`: Ignore parsing errors while loading the CSV file.
- `--infer-schema`: Set the schema inference method. Options are no, fast, full, and safe.
- `--quote-char`: Set the quote character.
- `--separator`: Set the separator character.
- `--theme`: Set the theme.To open TSV file(s), use:
```bash
tw --separator $'\t' --no-header
```To open parquet file(s), use:
```bash
tw -f parquet
```## Themes
### Monokai (default):
![Image Alt text](/images/theme-monokai.png "Monokai")### Argonaut:
![Image Alt text](/images/theme-argonaut.png "Argonaut")### Terminal:
![Image Alt text](/images/theme-terminal.png "Terminal")## Contributing
Contributions are welcome! Please fork the repository and submit pull requests with your features and bug fixes.## License
This project is licensed under the MIT License - see the LICENSE file for details.