datagen

datagen

A synthetic data generator that lets you describe your data model in a simple language, then compiles it into fast native code to produce large, coherent test datasets.

🔗 Visit datagen
📁 Data & Analytics🗣️ English📅 September 5, 2026

Description

Generating realistic test data at scale is usually either slow (data generated interpretively, row by row, in a scripting language) or crude (random values with no logical relationships between fields or tables). datagen takes a different approach: you describe your data model once in a small, declarative language, and it compiles that description into native code before running it — so generating millions of coherent rows is fast rather than a bottleneck.

datagen's domain-specific language uses Go-like syntax to define entity shapes, cross-references between models, and tag-based filtering rules, which the tool then transpiles into native Go code for the actual generation step. It outputs to CSV, JSON, XML, or stdout, and can write directly into a MySQL database. It ships built-in functions for common data-generation patterns so you're not writing everything from scratch. It's MIT-licensed, written in Go (1.24+), and at 60 GitHub stars is a small but functioning project rather than a widely-adopted standard.

💬 Our review

The short version: datagen's compile-to-native-code approach is a genuinely smart answer to "synthetic data generation is too slow at scale," and it's free and open-source — the tradeoff is learning a small custom DSL instead of just writing a script in a language you already know.

Against writing generation logic directly in Python with Faker, datagen's DSL-to-Go compilation step should meaningfully outperform an interpreted script once you're generating large volumes, at the cost of an upfront learning curve for its syntax. Against model2data, a narrower dbt-specific tool from the same discovery batch, datagen is more general-purpose — MySQL output and multiple export formats — but doesn't come with model2data's dbt project scaffolding. At 60 stars it has more traction than most tools in this niche, but it's still a small project without commercial backing. Worth it if you need to generate large volumes of structured, relationship-aware test data and are comfortable learning a compact DSL; stick with a scripting-language library like Faker for smaller, one-off needs.

💰 Pricing

Open sourceFree, MIT license
Self-run Free (MIT)

📊 Global score

53Average
🌐Availability15/100Faible

1 language · 0 platform

📄Profile90/100Excellent

Profile completeness

🤖 AI-enriched data

💰 Pricing model
💳 Open source

Gratuit, licence MIT

👥 Target audienceDéveloppeurs et ingénieurs data ayant besoin de générer de gros volumes de données de test cohérentes
🗣️ Languagesen
🌍 Target countriesInternational
👍

Pros

Compile le DSL en code Go natif → génération rapide même à gros volume

Relations entre modèles via références croisées et filtrage par tags

Plusieurs formats de sortie (CSV, JSON, XML, stdout) + écriture directe en MySQL

60 étoiles GitHub, adoption réelle pour un outil de niche

👎

Cons

Nécessite d'apprendre un DSL propriétaire plutôt que d'utiliser un langage déjà connu

Communauté encore restreinte, pas de support commercial

❓ Frequently asked questions

What is datagen in one sentence?▼
What output formats does it support?▼
Do I need to know Go to use it?▼
Can it model relationships between entities?▼
Is it free?▼
Is it worth the money compared to alternatives?▼
Which tool should you pick for your case?▼