A modern graphical user interface for the xan CSV processing tool, built with Tauri, React, and shadcn-ui.
- Visual Pipeline Builder: Drag and drop xan commands to build data processing pipelines
- Command Library: Browse and search all available xan commands organized by category
- Parameter Configuration: Easy-to-use forms for configuring command parameters
- Real-time Logs: View execution logs and output in real-time
- Modern UI: Clean, responsive interface built with shadcn-ui components
-
Install xan CLI tool:
# Using cargo cargo install xan --locked # Or download pre-built binaries from https://github.com/medialab/xan/releases
-
Install project dependencies:
pnpm install
Run the development server:
pnpm tauri devThis will start both the Vite dev server and the Tauri application.
Build the application for production:
pnpm tauri buildThe built application will be in the src-tauri/target/release/bundle/ directory.
- Browse Commands: The left panel shows all available xan commands organized by category
- Add to Pipeline: Click on any command to add it to your pipeline
- Configure Parameters: Click on a step in the pipeline to configure its parameters in the right panel
- Reorder Steps: Drag steps in the pipeline to reorder them
- Execute: Click the "Execute" button to run your pipeline
- View Logs: Check the bottom panel for execution logs and output
xan-gui/
├── src/
│ ├── components/ # React components
│ │ ├── ui/ # shadcn-ui components
│ │ ├── CommandList.tsx # Left panel command browser
│ │ ├── PipelineBuilder.tsx # Middle panel pipeline editor
│ │ ├── ParameterPanel.tsx # Right panel parameter editor
│ │ └── LogPanel.tsx # Bottom panel log viewer
│ ├── data/
│ │ └── commands.ts # xan command definitions
│ ├── types/
│ │ └── xan.ts # TypeScript type definitions
│ ├── lib/
│ │ └── utils.ts # Utility functions
│ ├── App.tsx # Main application component
│ ├── main.tsx # Application entry point
│ └── index.css # Global styles
├── src-tauri/
│ ├── src/
│ │ └── lib.rs # Tauri backend commands
│ └── Cargo.toml # Rust dependencies
└── package.json # Node.js dependencies
The application includes support for the following xan command categories:
- Viewing: view, flatten
- Manipulation: select, slice, split, replace, dedup
- Filtering: search, filter
- Sorting: sort
- Aggregation: count, frequency, stats, pivot
- Joining: join
- Sampling: sample
- Conversion: to, from
MIT