Benerator: model-driven test data generation since 2006.
# rapiddweller-benerator-ce [](#still-on-benerator-existing-users) [](https://github.com/rapiddweller/rapiddweller-benerator-ce/actions) [](license.txt) [](#still-on-benerator-existing-users) [](https://github.com/rapiddweller/datamimic) > **Two decades of test data engineering.** Benerator has generated model-driven test data since 2006 — more than 50,000 downloads on SourceForge alone, plus nearly twenty years of releases on Maven Central, in production at banks, insurers, and public-sector systems. Benerator solved the first generation of enterprise test-data challenges. **DATAMIMIC** is what we built for today's: hybrid architectures, cloud environments, and AI-assisted workflows. > > Benerator CE stays free and open, and is maintained for bug fixes and security updates — existing projects keep working. New features land in DATAMIMIC, and this release ships a **converter** that translates Benerator projects into DATAMIMIC descriptors. This README shows what you gain and how to move; the team supports the migration. --- ## Editions - **Benerator Community Edition (CE):** this repository. Maintained for bug fixes and security; open source (GPL v2 with exceptions). We are happy to help with issues and with migration to DATAMIMIC. - **Need an enterprise platform?** That is DATAMIMIC. It comes as a free Community Edition and a commercial Platform (Enterprise) offered under a platform partnership. See https://datamimic.io. --- ## Why move to DATAMIMIC DATAMIMIC is not "Benerator in Python." The two are different kinds of product: - **Benerator is a framework** — a generation engine you script, embed, and drive yourself. That was the right shape for its era, and it is why it lasted twenty years. - **DATAMIMIC is a platform** — the same model-driven core, plus the layers enterprises now ask us for: deterministic contracts with audit evidence, auto-regressive ML generation, a UI and REST API (Platform), and governed deployment on-premise or air-gapped. Concretely, moving gives you: - **Deterministic, reproducible output.** The same model and seed produce the same data, reproducible across machines, with a per-output content hash you can use as audit evidence. - **A familiar approach, modern foundation.** If you have worked with model-driven generation, DATAMIMIC will feel familiar: XML descriptors and first-class Python, so you can bring your own Python as generators, converters, and validators. - **Active development and regular releases**, not maintenance-only. - **Install and run in CI.** `pip install datamimic_ce` and drive it from the CLI — it slots into Jenkins, GitLab CI, or any Python pipeline, the same place your Benerator step runs today. CE connects to PostgreSQL, Oracle, MySQL, MS SQL Server, SQLite, and MongoDB, plus CSV/JSON/XML files, and ships an MCP server so agentic workflows can use it as a deterministic data-generation tool. Streaming targets (Apache Kafka, RabbitMQ) are in DATAMIMIC EE; a REST API and scheduler for server-driven pipelines are in DATAMIMIC Platform. - **On-premise and air-gapped deployment**, no telemetry and no call-home, for regulated environments. Get started: - GitHub: https://github.com/rapiddweller/datamimic - Documentation: https://docs.datamimic.io - Website: https://datamimic.io --- ## Coming from Benerator DATAMIMIC Community Edition is the direct successor to Benerator's model-driven engine. The descriptor approach carries over; the runtime and the extension language change. You install it with `pip install datamimic_ce` and drive it from the CLI, so it slots into the same place in your pipeline where the Benerator shell or Maven step runs today. Migration scripts convert much of an existing descriptor; the parts that were redesigned need a manual pass, and we are happy to help with those. | Benerator CE | DATAMIMIC CE | |---|---| | Model-driven generation in XML | Same approach: model-driven XML descriptors. | | Descriptor structure (`setup`, `generate`, `iterate`, `variable`, `attribute`, `id`, `reference`) | Similar structure, some elements renamed — Benerator's `attribute` is DATAMIMIC's `key`. A compatibility mode aliases common Benerator elements (e.g. `iterate`→`generate`, `id`→`key`) so most descriptors run with minimal changes; unsupported elements are reported in the log instead of failing the run. | | Custom logic in Java or JavaScript | Python generators, converters, and validators. Existing Java/JS extensions must be rewritten in Python — DATAMIMIC provides Converter and Generator interfaces to implement against. | | Anonymizing / masking existing data | Deterministic generation with value-keyed pseudonymization converters — the same input maps to the same token across runs (referentially consistent, reproducible from the seed). | | Runs as a CLI / Maven step in Jenkins or GitLab CI | `pip install datamimic_ce`, then the `datamimic` CLI as a pipeline step — same model, no server required. | | Databases via JDBC, any driver (Oracle, DB2, MySQL, PostgreSQL, H2, …); files: CSV, fixed-width, XML, Excel, DbUnit | Oracle, MS SQL Server, PostgreSQL, MySQL, SQLite, MongoDB; files: CSV, JSON, XML. The major relational engines plus MongoDB (document); Benerator's any-JDBC reach is broader on exotic drivers. | **Streaming targets (Apache Kafka, RabbitMQ) are in DATAMIMIC EE**; a REST API and scheduler for server-driven pipelines are in DATAMIMIC Platform. CE covers the relational, MongoDB, and file targets above, runs from the CLI in any pipeline, and ships an MCP server for agentic workflows. As a platform partner we solve your test-data challenges — if a system you need isn't supported yet, contact us. ### Migrate a project: step by step This release ships a **built-in converter** that translates Benerator descriptors into native DATAMIMIC descriptors — including your data files, SQL scripts, DbUnit datasets, environment properties, and a per-file report of everything that needs a manual decision. **1. Convert your project** (the whole directory — descriptors, CSVs, scripts, properties): ```bash java -cp benerator.jar com.rapiddweller.benerator.main.datamimic.DatamimicConverter \ /path/to/your/benerator-project /path/to/output migration-report.txt ``` Every `*.ben.xml` becomes a `*.datamimic.xml`; data files and SQL scripts are carried over; DbUnit datasets are split into per-table JSON sources; `conf/*.env.properties` are migrated to DATAMIMIC's environment format (JDBC URLs become host/port/database/dbms). **2. Read `migration-summary.md`** in the output directory. It lists, per file, what converted automatically and what needs a manual pass, with a link into `MIGRATION_PLAYBOOK.md` for each recurring pattern (the playbook ships next to the converter sources). Typical manual items: - **JavaScript** (`