1 unstable release
Uses new Rust 2024
0.1.0 | Apr 9, 2025 |
---|
#8 in Rendering
127 downloads per month
390KB
1.5K
SLoC
Presto
Presto is a Rust-based CLI tool for exploring and analyzing datasets through an interactive terminal user interface (TUI). It offers statistical insights, correlations, and ASCII visualizations for data analysts and developers who love the command line.
Features
- Interactive TUI: Navigate tabs (📊 Stats, 📋 Details, 🔍 Advanced, 🔗 Correlations, 📈 Plots).
- Statistical Analysis: Means, medians, standard deviations, skewness, kurtosis, and more.
- Data Insights: Missing values, duplicates, outliers, and feature importance.
- Visualizations: ASCII bar plots for data distributions.
- Exportable Results: Save insights as JSON with the e key.
- Lightweight and Fast: Built in Rust for performance.
Installation
From crates.io
cargo install presto-cli
From GitHub Release
- Download the latest release.
- Extract the binary.
- Move it to a directory in your PATH:
mv presto /usr/local/bin/
From Source
- Clone the repo:
git clone https://github.com/amirhosseinghanipour/presto.git
cd presto
- Build and install:
cargo install --path .
Usage
Run Presto with a CSV dataset:
presto -p <path_to_csv>
Example:
presto -p data.csv
TUI Controls
- Tabs: Tab / Shift+Tab to switch sections.
- Navigation: ↑ / ↓ / ← / → to scroll content.
- Export: Press e to save insights as presto_insights.json.
- Exit: Press q to quit.
Contributing
Contributions are always welcomed! To get started:
- Fork the repository.
- Create a branch:
git checkout -b feature-name
. - Commit your changes:
git commit -m "Add feature"
. - Push to your fork:
git push origin feature-name
. - Open a pull request.
Ideas for Contributions
- Add support for more file formats (e.g., JSON, Parquet).
- Implement additional plot types (e.g., line charts).
- Add CLI flags for customization (e.g., output file path).
License
Presto is licensed under MIT. See the LICENSE file for details.
Acknowledgments
- Built with
Rust
,ratatui
,crossterm
, andclap
. - Inspired by terminal tools like
htop
andncdu
.
Dependencies
~16–28MB
~420K SLoC