datagen is a tool to generate coherent, synthetic data generation from models expressed in a simple, declarative DSL.
Salient features:
* A declarative DSL for defining data models with Go-like syntax
* High performance through transpilation to native Go code
* Multiple output formats (CSV, JSON, XML, stdout)
* Database integration with direct loading to MySQL
* Model relationships via cross-references using self.datagen
* Tag-based filtering for selective data generation
* Built-in functions for common data items
See the Installation Guide for detailed installation instructions.
You can launch datagen for trying it out with:
# Create a simple model file
cat > user.dg << 'EOF'
model user {
metadata { count: 100 }
fields {
id() int
name() string
}
gens {
func id() { return iter + 1 }
func name() { return Name() }
}
}
EOF
# Generate data
datagenc gen user.dg -f csv -o ./output
this will generate a user.csv file in output directory with 100 user records.
Refer to CONTRIBUTING.md
MIT License, see LICENSE.
$ claude mcp add datagen \
-- python -m otcore.mcp_server <graph>