Esta página se muestra en inglés. Una traducción al español está en curso.
ConfigsJul 22, 2026·3 min de lectura

Mimesis — High-Performance Fake Data Generator for Python

A fast Python library for generating structured fake data including names, addresses, dates, text, and domain-specific values for testing, seeding databases, and populating prototypes.

Listo para agents

Instalación lista para agent

Este activo puede instalarse después de elegir el runtime, revisar el plan y ejecutar el comando correspondiente.

Native · 98/100Política: permitir
Superficie agent
Cualquier agent MCP/CLI
Tipo
Skill
Instalación
Single
Confianza
Confianza: Established
Entrada
Mimesis
Comando de instalación directa
npx -y tokrepo@latest install 1b25f61e-85d0-11f1-9bc6-00163e2b0d79 --target codex

Ejecutar después de confirmar el plan con dry-run.

Introduction

Mimesis is a Python library for generating fake data. It provides locale-aware data providers that produce realistic names, addresses, phone numbers, dates, text, payment details, and dozens of other data types. Mimesis focuses on performance and type safety, generating data significantly faster than similar libraries.

What Mimesis Does

  • Generates locale-aware fake data for 30+ locales including names, addresses, and phone formats
  • Provides 30+ data providers covering personal info, dates, text, internet, payment, food, science, and more
  • Generates structured data via schema definitions for populating databases and building fixtures
  • Supports seeded random generation for reproducible test data
  • Offers a generic provider factory for custom data generation patterns

Architecture Overview

Mimesis organizes data generation into provider classes, each responsible for a data domain (Person, Address, Internet, Finance, etc.). Providers load locale-specific data from bundled JSON datasets and use deterministic random generation. The Schema class composes multiple providers into structured output, producing lists of dictionaries that match database or API schemas. All providers accept a seed for reproducible results.

Self-Hosting & Configuration

  • Install from PyPI: pip install mimesis
  • Import providers directly: from mimesis import Person, Address, Internet
  • Set locale at provider creation: Person("de") for German names, Address("ja") for Japanese addresses
  • Use Schema for structured data: Schema(lambda: {"name": person.full_name(), "email": person.email()})
  • Set seed for reproducibility: Person("en", seed=42) generates the same sequence every run

Key Features

  • 30+ built-in data providers covering personal, financial, geographic, scientific, and internet domains
  • Locale support for 30+ languages with region-specific formats for names, phones, and addresses
  • Schema builder for generating lists of structured records matching database or API shapes
  • Deterministic seeded generation for reproducible test fixtures
  • High performance: generates data 5-10x faster than Faker due to lean architecture and bundled data

Comparison with Similar Tools

  • Faker — larger community and more third-party providers; Mimesis is faster and has built-in type hints
  • factory_boy — ORM-integrated factory for Django/SQLAlchemy models; Mimesis focuses on raw data generation without ORM coupling
  • Hypothesis — property-based testing with shrinking; Mimesis generates realistic-looking data, not adversarial test cases
  • Polyfactory — generates instances of Pydantic models and dataclasses; Mimesis provides raw data values rather than model instances
  • chance.js — JavaScript fake data library; Mimesis serves the Python ecosystem with similar provider coverage

FAQ

Q: How does Mimesis compare to Faker in speed? A: Mimesis is typically 5-10x faster than Faker for equivalent operations due to its simpler architecture and direct data loading without heavy provider registration.

Q: Can I add custom data providers? A: Yes. Create a class inheriting from BaseProvider and register it with the Generic provider or use it standalone.

Q: Does Mimesis support generating unique values? A: Use the unique property on providers (e.g., person.unique.full_name()) to avoid duplicates within a session.

Q: Can I generate data for non-English locales? A: Yes. Pass a locale code like "de", "ja", "pt-br" when creating any provider to get locale-appropriate data.

Sources

Discusión

Inicia sesión para unirte a la discusión.
Aún no hay comentarios. Sé el primero en compartir tus ideas.

Activos relacionados