Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

User Guide

This section covers the different ways to use SyntheticData.

Interfaces

SyntheticData offers three interfaces:

InterfaceUse Case
CLICommand-line generation, scripting, automation
Server APIREST/gRPC/WebSocket for applications
Desktop UIVisual configuration and monitoring

Quick Comparison

FeatureCLIServerDesktop UI
Configuration editingYAML filesAPI endpointsVisual forms
Batch generationYesYesYes
Streaming generationNoYesYes (view)
Progress monitoringProgress barWebSocketReal-time
Scripting/automationYesYesNo
Visual feedbackMinimalNoneFull

CLI Overview

The command-line interface (datasynth-data) is ideal for:

  • Batch generation
  • CI/CD pipelines
  • Scripting and automation
  • Server environments
datasynth-data generate --config config.yaml --output ./output

Server Overview

The server (datasynth-server) provides:

  • REST API for configuration and control
  • gRPC for high-performance integration
  • WebSocket for real-time streaming
cargo run -p datasynth-server -- --port 3000

Desktop UI Overview

The desktop application offers:

  • Visual configuration editor
  • Industry preset selector
  • Real-time generation monitoring
  • Cross-platform support (Windows, macOS, Linux)
cd crates/datasynth-ui && npm run tauri dev

Output Formats

SyntheticData produces various output formats:

  • CSV: Standard tabular data
  • JSON: Structured data with nested objects
  • ACDOCA: SAP HANA Universal Journal format
  • PyTorch Geometric: ML-ready graph tensors
  • Neo4j: Graph database import format

See Output Formats for details.

Choosing an Interface

Use the CLI if you:

  • Need to automate generation
  • Work in headless/server environments
  • Prefer command-line tools
  • Want to integrate with shell scripts

Use the Server if you:

  • Build applications that consume synthetic data
  • Need streaming generation
  • Want API-based control
  • Integrate with microservices

Use the Desktop UI if you:

  • Prefer visual configuration
  • Want to explore options interactively
  • Need real-time monitoring
  • Are new to SyntheticData

Next Steps