Generate a CSV file of realistic test data for a database table without writing a script by hand.
Create linked datasets where one generated record references another that already exists.
Load generated test data directly into a MySQL database for local development.
Filter which records get generated using tags on a shared model file.
| dream-horizon-org/datagen | mitchellh/go-libucl | walkingddd/cpa-helper | |
|---|---|---|---|
| Stars | 59 | 56 | 63 |
| Language | Go | Go | Go |
| Last pushed | — | 2019-03-08 | — |
| Maintenance | — | Dormant | — |
| Setup difficulty | easy | moderate | moderate |
| Complexity | 2/5 | 2/5 | 3/5 |
| Audience | developer | developer | ops devops |
Figures from each repo's GitHub metadata at analysis time.
Installation instructions are on a separate documentation site rather than in the README.
datagen is a command line tool, written in Go, for generating large amounts of synthetic data that still makes internal sense, such as a set of users where an order always references a user that actually exists in the same generated dataset. Instead of writing a script by hand, a user describes the shape of the data they want in a small declarative language that reads similarly to Go itself. A model file defines fields for a record, such as an id or a name, along with small generator functions that decide how each field's value is produced, for example an incrementing counter for the id or a call to a built in name generator for the name field. Once a model is written, running the datagenc command against it produces the requested number of records in the chosen output format. Supported formats include CSV, JSON, XML, or plain text sent to the terminal, and there is also direct integration for loading generated data straight into a MySQL database rather than exporting to a file first. The README highlights that the tool is built for speed by transpiling the declarative model into native Go code rather than interpreting it at generation time, which the project positions as its main performance advantage over similar tools. Other listed capabilities include defining relationships between models so one type of record can reference another that was generated earlier in the same run, and filtering which records get generated using tags. Installation instructions point to a separate documentation site rather than a single command in the README itself. The project includes a short demo video, is licensed under MIT, and welcomes contributions through a separate contributing guide.
A Go command line tool that generates large amounts of realistic, internally consistent synthetic data from a small declarative model file.
Mainly Go. The stack also includes Go.
Free to use, modify, and distribute, including commercially, as long as the copyright notice is kept.
Setup difficulty is rated easy, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.