Skip to content

Phony Documentation

Phony turns a small schema into realistic fake data — names that sound right for a locale, valid emails composed from them, coherent addresses, chronological event timelines, referentially-intact foreign keys — that looks real without being real. It's N-gram-powered (no LLM), and the same schema + seed produces byte-identical data on every run and every machine.

This is the technical documentation. The full internal design and specification (including roadmap features) lives in the Spec.

Sections

SectionWhat it covers
The PDL Languagewhat PDL is, the schema, every generator, the expression language, and how generation works
Conceptsthe ideas — determinism, the generator types, locales
The engine (Rust)phony-core: install, run a schema, and the full Rust API

New to PDL? Start with What is PDL?. Want to run a schema now? See The engine → Quick start.

The one-minute picture

A PDL schema (JSON) has three parts:

json
{
  "generators": { "...": "reusable value producers" },
  "entities":   { "...": "tables — named fields wired to generators" },
  "scenarios":  { "...": "how many rows of each entity to make" }
}

You feed it a seed and the engine returns tables of rows. Generators range from pure-algorithm IDs and numbers, to locale-aware names trained from samples, to templates that compose other values — see The 7 generator types.

Project status

The PDL language and the Rust engine are implemented and documented here. A CLI and language libraries (PHP, JS, Python) — and the product-style guides that come with them — are on the roadmap.

Phony Cloud — Documentation & Specification