SyntheticData is organized as a Rust workspace with 15 modular crates. This section provides detailed documentation for each crate.
datasynth-cli → Binary entry point (commands: generate, validate, init, info, fingerprint)
datasynth-server → REST/gRPC/WebSocket server with auth, rate limiting, timeouts
datasynth-ui → Tauri/SvelteKit desktop UI
↓
datasynth-runtime → Orchestration layer (GenerationOrchestrator coordinates workflow)
↓
datasynth-generators → Data generators (JE, Document Flows, Subledgers, Anomalies, Audit)
datasynth-banking → KYC/AML banking transaction generator with fraud typologies
datasynth-ocpm → Object-Centric Process Mining (OCEL 2.0 event logs)
datasynth-fingerprint → Privacy-preserving fingerprint extraction and synthesis
datasynth-standards → Accounting/audit standards (US GAAP, IFRS, ISA, SOX)
↓
datasynth-graph → Graph/network export (PyTorch Geometric, Neo4j, DGL)
datasynth-eval → Evaluation framework with auto-tuning and recommendations
↓
datasynth-config → Configuration schema, validation, industry presets
↓
datasynth-core → Domain models, traits, distributions, templates, resource guards
↓
datasynth-output → Output sinks (CSV, JSON, Parquet, ControlExport)
datasynth-test-utils → Testing utilities and fixtures
| Crate | Description |
| datasynth-cli | Command-line interface binary with generate, validate, init, info, fingerprint commands |
| datasynth-server | REST/gRPC/WebSocket server with authentication, rate limiting, and timeouts |
| datasynth-ui | Cross-platform desktop GUI application (Tauri + SvelteKit) |
| Crate | Description |
| datasynth-runtime | Generation orchestration with resource guards and graceful degradation |
| datasynth-generators | All data generators (JE, master data, documents, subledgers, anomalies, audit) |
| datasynth-graph | ML graph export (PyTorch Geometric, Neo4j, DGL) |
The crates follow a strict dependency hierarchy:
- datasynth-core: No internal dependencies (foundation)
- datasynth-config: Depends on datasynth-core
- datasynth-output: Depends on datasynth-core
- datasynth-generators: Depends on datasynth-core, datasynth-config
- datasynth-graph: Depends on datasynth-core, datasynth-generators
- datasynth-eval: Depends on datasynth-core
- datasynth-banking: Depends on datasynth-core, datasynth-config
- datasynth-ocpm: Depends on datasynth-core
- datasynth-fingerprint: Depends on datasynth-core, datasynth-config
- datasynth-runtime: Depends on datasynth-core, datasynth-config, datasynth-generators, datasynth-output, datasynth-graph, datasynth-banking, datasynth-ocpm, datasynth-fingerprint, datasynth-eval
- datasynth-cli: Depends on datasynth-runtime, datasynth-fingerprint
- datasynth-server: Depends on datasynth-runtime
- datasynth-ui: Depends on datasynth-runtime (via Tauri)
- datasynth-standards: Depends on datasynth-core, datasynth-config
- datasynth-test-utils: Depends on datasynth-core
# Build specific crate
cargo build -p datasynth-core
cargo build -p datasynth-generators
cargo build -p datasynth-fingerprint
# Run tests for specific crate
cargo test -p datasynth-core
cargo test -p datasynth-generators
cargo test -p datasynth-fingerprint
# Generate docs for specific crate
cargo doc -p datasynth-core --open
cargo doc -p datasynth-fingerprint --open
For detailed Rust API documentation, generate and view rustdoc:
cargo doc --workspace --no-deps --open
After deployment, API documentation is available at /api/ in the documentation site.