# datahobbit - CSV or Parquet Generator
A Rust command-line tool that generates CSV or Parquet files with synthetic data based on a provided JSON schema. It supports custom delimiters for CSV, displays a progress bar during generation, and efficiently handles large datasets using parallel processing.
## Table of Contents
- [Features](#features)
- [Installation](#installation)
- [Usage](#usage)
- [Command-Line Options](#command-line-options)
- [Schema Definition](#schema-definition)
- [Examples](#examples)
- [Supported Data Types](#supported-data-types)
- [Contributing](#contributing)
- [License](#license)
## Features
- **Flexible Schema Definition**: Define your data structure using a JSON schema file.
- **Synthetic Data Generation**: Generates realistic data for various data types.
- **CSV and Parquet Support**: Output data in CSV or Parquet format.
- **Parallel Processing**: Utilizes multi-threading for fast data generation.
- **Custom Delimiters**: Supports optional delimiters for CSV, defaulting to a comma.
- **Progress Indicator**: Displays a progress bar during data generation.
- **Error Handling**: Provides clear error messages for unsupported data types or invalid input.
## Installation
To build and run the CSV and Parquet Generator, you need to have [Rust](https://www.rust-lang.org/tools/install) installed on your system.
1. **Clone the Repository**
```bash
git clone https://github.com/yourusername/datahobbit.git
cd datahobbit
```
2. **Build the Project**
```bash
cargo build --release
```
This will create an executable in the `target/release` directory.
3. **Cargo**
```bash
cargo add csv_generator
```
## Usage
### Command-Line Options
Run the executable with the following options:
```bash
USAGE:
datahobbit [OPTIONS]