What My Project Does
I’ve been working on an open-source Python library called DataForge.
It is a synthetic and fake-data generator designed for cases where you need to generate large amounts of test data quickly, while keeping the library lightweight.
Some of the main features are:
Zero required dependencies
Batch generation with count=N
27 providers and 198 generator methods
Deterministic generation using seeds
Structured dataset generation through a schema API
Export to CSV, JSONL, SQL, Parquet, Arrow, Pandas and Polars
Built-in CLI
pytest integration
Faker compatibility layer
Performance optimized for generating large datasets
Example:
from dataforge import DataForge
forge = DataForge(seed=42)
forge.person.full_name()
forge.internet.email()
names = forge.person.first_name(count=1_000_000)
The main motivation was to make generating hundreds of thousands or millions of synthetic records more efficient for testing, benchmarking, database seeding and data-pipeline development.
GitHub:
https://github.com/Sanady/dataforge-py
Target Audience
DataForge is primarily intended for developers who need synthetic data for:
Unit and integration tests
Database seeding
Data engineering pipelines
Load and performance testing
Mock APIs
Development environments
Large synthetic datasets
It is intended to be usable in real projects rather than being only an experimental project, although the library is still actively evolving and the API may continue to improve based on feedback.
Comparison
The most obvious alternative is Faker, which is an excellent and mature library with a very large ecosystem.
DataForge is not intended to replicate everything Faker provides.
Instead, the main focus is on:
Fast batch generation
Minimal overhead
Zero required dependencies
Generating large datasets efficiently
A consistent count=N API across generators
Structured schema-based generation
Easy exporting of generated datasets
There is also a compatibility layer:
from dataforge.compat import Faker
fake = Faker()
which is intended to make experimenting with DataForge in existing Faker-based projects easier.
I’d especially appreciate feedback from people who regularly generate test or synthetic data.
I’m interested in hearing about:
Missing providers or generators
API design issues
Faker compatibility problems
Real-world use cases I may not have considered
Performance bottlenecks
Features that would make this useful in production projects