An open API service indexing awesome lists of open source software.

https://github.com/manjunathh-xyz/schemeforge

Fast, local CLI written in Rust for validating, inspecting, and converting CSV & JSON datasets using file-based schemas.
https://github.com/manjunathh-xyz/schemeforge

cli command-line-tool csv data-validation dataset developer-tools json open-source rust schema-validation

Last synced: 6 months ago
JSON representation

Fast, local CLI written in Rust for validating, inspecting, and converting CSV & JSON datasets using file-based schemas.

Awesome Lists containing this project

README

          

# schemeforge

Fast, local CLI written in Rust for validating, inspecting, and converting CSV & JSON datasets using file-based schemas.

## Problem Statement

Validating and converting datasets between CSV and JSON formats is often tedious and error-prone. Developers and data analysts frequently need to ensure data integrity, check for type mismatches, and transform data formats without relying on external services or complex tools.

## Why schemeforge?

schemeforge provides a simple, fast, and local solution for dataset validation and conversion. It uses declarative schemas to define expected data structures, catching errors early and enabling reliable data processing pipelines.

## Installation

```bash
cargo install schemeforge
```

Or build from source:

```bash
git clone https://github.com/manjunathh-xyz/schemeforge.git
cd schemeforge
cargo build --release
```

## Usage

### Validate a dataset

```bash
schemeforge validate data.csv --schema schema.json
```

### Show dataset statistics

```bash
schemeforge stats data.json
```

### Convert between formats

```bash
schemeforge convert input.csv output.json
schemeforge convert input.json output.csv
```

## Schema Format

Schemas are JSON files defining fields and their types:

```json
{
"fields": {
"name": {"field_type": "string", "required": true},
"age": {"field_type": "number", "required": false},
"active": {"field_type": "boolean", "required": false}
}
}
```

Supported types: `string`, `number`, `boolean`.

## Non-Goals

- No plugins or extensions
- No custom schema DSL
- No asynchronous operations
- No network access
- No configuration files
- No auto-fixing of data
- No GUI interface