A high-performance portable, modern CSVit built with Rust and egui. Designed to handle large files efficiently using memory mapping.
- High Performance: Uses memory-mapped files (
memmap2) to open and navigate large CSV datasets instantly. - Modern UI: Clean, dark-mode interface with a "shadcn-like" aesthetic.
- Dual View Modes: Switch between a structured Table View and raw Text View.
- Editing: Double-click any cell to edit its content.
- JSON Support:
- Export the entire file to JSON.
- Right-click any row to view it as a JSON object.
- Word Wrap: Toggle word wrapping for long cell content.
- Graph Mode: Visualize your data with X/Y scatter and line plots. Select any two columns to generate instantaneous graphs.
- Advanced Editing:
- Edit Popup: Toggle a dedicated text editor popup for long content (enable in Settings).
- JSON Beautifier: Built-in JSON formatter within the edit popup for easy editing of nested data.
- Customization:
- Themes: Switch between Dark, Light, or System themes.
- Appearance: Adjustable font size and row height.
- Persistence: All settings are automatically saved and restored.
- Cross-Platform: Runs natively on Windows, macOS, and Linux.
CSVit is built with Rust and runs on all major operating systems.
- Works out of the box.
- Release builds hide the terminal window automatically.
- Works out of the box.
- Universal binary compilation is supported via standard Rust toolchains.
- Requires standard GUI development libraries (GTK3 or generic X11/Wayland libs depending on backend).
- On Ubuntu/Debian:
sudo apt install libgtk-3-dev libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libxkbcommon-dev libssl-dev - On Fedora:
sudo dnf install gtk3-devel libxcb-devel libxkbcommon-devel openssl-devel
To build and run this application, you need the Rust toolchain installed on your system.
-
Clone the repository:
git clone https://github.com/tigokraft/CSVit.git cd CSVit -
Build and run in release mode (recommended for best performance):
cargo run --release
Or just build the executable:
cargo build --release
The binary will be located at
target/release/.
You can open a file in two ways:
- GUI: file Launch the app and click the "Open File" button to select a CSV via the system file dialog.
- Command Line: Pass the file path as an argument:
cargo run --release -- --file "path/to/your/data.csv"
- Edit Cell: Double-click on any cell in the table to start editing. Press
Enterto confirm orEscapeto cancel. - Context Menu: Right-click on a row to see options like "View Row as JSON".
- View Modes: Use the toggle in the top-right corner to switch between Table and Text views.
- Export: Click the "Export JSON" button to save the current CSV data as a JSON file.