Repository navigation
1.0.0
Jaker 1.0.0
We are excited to announce the first stable release of Jaker, a performance-first Java faker library for generating realistic test and placeholder data.
Highlights
- Dramatically faster than existing alternatives: firstName generation runs at ~19 million ops/s, compared to ~1.6 million for DataFaker and ~240k for JavaFaker. Number generation exceeds 220 million ops/s.
- Seeded (deterministic) output for reproducible tests via the builder API.
- Modular locale pack design: include only the locale data you actually need.
- Explicit safe/unsafe API for sensitive data types (IBANs, credit cards, phone numbers).
- Available via JitPack with zero heavyweight dependencies.
Providers
The following data providers are available in this release:
- name — localized first and last names
- address — cities, streets, and zip codes
- company — company names
- internet — domains and email addresses
- finance — credit card numbers (safe examples by default; unsafe() for synthetic Luhn-valid values)
- dateTime — ISO date helpers
- text — lorem ipsum sentences and words
- bank — example IBANs and IBAN format templates (safe examples by default; unsafe() for synthetic values)
- number — numberBetween, random, and ranged numeric helpers
- person — full person assembly including first name, last name, date of birth, UUID, timestamps, source tag, and phone
- server — hostnames and private IPv4/IPv6 addresses
- file — file name, extension, and size metadata
- gameServer — game server name, IP, and version metadata
- fruit — fruit name and category
- animal — animal name, category, and gender
- country — country name and code
- unique — wrapper over any provider that guarantees non-repeating values within a faker instance
Supported Locales
Six locale packs ship with this release, each as a separate Maven artifact:
- en-US (jaker-data-en-US) — English, United States; default; widest dataset coverage
- en-GB (jaker-data-en-GB) — English, United Kingdom; British spellings and address formats
- fr (jaker-data-fr) — French (France)
- de (jaker-data-de) — German (Germany); includes banking coverage
- es (jaker-data-es) — Spanish (Spain); includes banking coverage
- nl (jaker-data-nl) — Dutch (Netherlands); includes banking coverage
Safe vs. Unsafe Data
Providers that deal with sensitive data categories (phone numbers, credit card numbers, IBANs) return safe, published example values by default. Call the unsafe() helper on the provider to obtain synthetically generated values that are structurally valid but not taken from real documentation:
person().phone()vsperson().unsafe().phone()finance().creditCardNumber()vsfinance().unsafe().creditCardNumber()bank().iban()vsbank().unsafe().iban()
Installation
Add the JitPack repository to your build, then include the core artifact and any locale packs you need:
More information: https://jitpack.io/#EzFramework/Jaker
groupId: com.github.EzFramework
artifactId: jaker
version: 1.0.0
For locale data (example for en-US):
groupId: com.github.EzFramework
artifactId: jaker-data-en-US
version: 1.0.0
Replace jaker-data-en-US with the appropriate locale artifact for other languages. If a locale pack is missing from the classpath at runtime, Jaker throws LocaleNotSupportedException to make the problem explicit.
Requirements
- Java 25 or later
- Maven (or any build tool that resolves from JitPack)
Notes
- Binary dataset packs (
.bin) are preferred by theDataLoaderwhen present alongside text datasets, providing an additional performance boost at load time. - The unique() provider tracks used values per faker instance and will throw an exception if the pool of available values is exhausted.
- A JMH benchmark module (
jaker-bench) is included in the repository for ongoing performance validation. - A JaCoCo coverage workflow is included in CI and produces per-module and aggregated HTML reports.