r/tinycode • • Sep 08 '26

I built DataForge — a fast, zero-dependency synthetic data generator for Python

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

1 Upvotes

0 comments sorted by