Coder Social home page Coder Social logo

vohai611 / tabiew Goto Github PK

View Code? Open in Web Editor NEW

This project forked from shshemi/tabiew

0.0 0.0 0.0 4.2 MB

A lightweight, terminal-based application to view and query delimiter separated value formatted documents, such as CSV or TSV files.

License: MIT License

Rust 100.00%

tabiew's Introduction

Tabiew

Tabiew is a lightweight TUI application to view and query tabular data files, such as CSV, TSV, and parquet.

Image Alt text

Features

  • 📊 Easy to Navigate Tables and Sheets
  • 🛠️ SQL Support
  • 🗂️ Multiple Table Support
  • ⌨️ Vim Inspired Keybindings

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.

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 Sort current data frame by column(s)
: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 using pacman:

pacman -S tabiew

Debian-based

Download the .deb package from the GitHub releases page and run:

sudo dpkg -i <path_to_package.deb>

RPM-based

Download the .rpm package from the GitHub releases page and run:

sudo rpm -i <path_to_package.rpm>

MacOS

Installing Tabiew using Homebrew from Homebrew core:

 brew update
 brew install tabiew

or tap:

brew install shshemi/tabiew/tabiew

Note: Please be aware that installing Tabiew from the custom tap involves compiling it from the source, which may take some time to complete.

Windows

Download the .exe file from the GitHub releases page and place it in a directory that is included in the system's PATH environment variable.

Disclaimer: The Windows version may experience performance lag.

Cargo

Installing Tabiew from Crates.io:

cargo install tabiew

Build from Source

Ensure you have the rustc version 1.80 (or higher) installed, then:

git clone https://github.com/shshemi/tabiew.git
cd tabiew
cargo build --release
cp ./target/release/tw <system_or_local_bin_path>

Usage

Start Tabiew with tw

tw <path_to_csv(s)>

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:

tw <path_to_tsv(s)> --separator $'\t' --no-header

To open parquet file(s), use:

tw <path_to_parquet(s)> -f parquet

Themes

Monokai (default):

Image Alt text

Argonaut:

Image Alt text

Terminal:

Image Alt text

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.

tabiew's People

Contributors

shshemi avatar 0x61nas avatar vohai611 avatar gromgit avatar orhun avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.