Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CSVit

A high-performance portable, modern CSVit built with Rust and egui. Designed to handle large files efficiently using memory mapping.

Features

  • 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.

Platform Support

CSVit is built with Rust and runs on all major operating systems.

Windows

  • Works out of the box.
  • Release builds hide the terminal window automatically.

macOS

  • Works out of the box.
  • Universal binary compilation is supported via standard Rust toolchains.

Linux

  • 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

Prerequisites

To build and run this application, you need the Rust toolchain installed on your system.

Building from Source

  1. Clone the repository:

    git clone https://github.com/tigokraft/CSVit.git
    cd CSVit
  2. 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/.

Usage

Opening Files

You can open a file in two ways:

  1. GUI: file Launch the app and click the "Open File" button to select a CSV via the system file dialog.
  2. Command Line: Pass the file path as an argument:
    cargo run --release -- --file "path/to/your/data.csv"

Controls

  • Edit Cell: Double-click on any cell in the table to start editing. Press Enter to confirm or Escape to 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.

Stack

  • Language: Rust
  • GUI Framework: egui / eframe
  • CSV Parsing: csv
  • File Dialogs: rfd

About

CSV Editor written in rust

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages