Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Generating fake data for the JVM (Java, Kotlin, Groovy) has never been easier!

License

NotificationsYou must be signed in to change notification settings

datafaker-net/datafaker

Maven StatusLicensecodecov

This library is a modern fork ofjava-faker with up to date libraries and several newly added Fake Generators.

Datafaker 2.x has Java 17 as the minimum requirement.

If Java 17 is not an option for you, you can choose to use Datafaker 1.x. Datafaker 1.x is built on Java 8, but this version is no longer maintained. We recommend all users to upgrade to Datafaker 2.x.

This library generates fake data, similar to other fake data generators, such as:

It's useful when you're developing a new project and need some pretty data for showcase.

Usage

In the pom.xml, add the following fragment to thedependencies section:

<dependency>    <groupId>net.datafaker</groupId>    <artifactId>datafaker</artifactId>    <version>2.5.4</version></dependency>

For Gradle users, add the following to your build.gradle file.

dependencies {    implementation'net.datafaker:datafaker:2.5.4'}

You can also use the snapshot version (2.6.0-SNAPSHOT), which automatically gets publishedafter every push to the main branch of this repository. Binary repository URL for snapshots download ishttps://central.sonatype.com/repository/maven-snapshots/.

Get started

In your Java code:

Fakerfaker =newFaker();Stringname =faker.name().fullName();// Miss Samanta SchmidtStringfirstName =faker.name().firstName();// EmoryStringlastName =faker.name().lastName();// BartonStringstreetAddress =faker.address().streetAddress();// 60018 Sawayn Brooks Suite 449

Or in your Kotlin code:

val faker=Faker()val name= faker.name().fullName()// Miss Samanta Schmidtval firstName= faker.name().firstName()// Emoryval lastName= faker.name().lastName()// Bartonval streetAddress= faker.address().streetAddress()// 60018 Sawayn Brooks Suite 449

JShell

# from project root folderjshell --class-path $(ls -d target/*.jar | tr '\n' ':')

or JShell w/JBang

# can be run anywhere, no project root/download needed.jbang -i net.datafaker:datafaker:2.5.4
|  Welcome to JShell -- Version 17.0.4|  For an introduction type: /help introjshell> import net.datafaker.Faker;jshell> var faker = new Faker();faker ==> net.datafaker.Faker@c4437c4jshell> faker.address().city();$3 ==> "Brittneymouth"jshell> faker.name().fullName();$5 ==> "Vernie Schmidt"

Expressions

Fakerfaker =newFaker();faker.expression("#{letterify 'test????test'}");// testqwastestfaker.expression("#{numerify '#test#'}");// 3test5faker.expression("#{templatify 'test','t','q','@'}");// @esqfaker.expression("#{examplify 'test'}");// ghjkfaker.expression("#{regexify '[a-z]{4,10}'}");// wbevoafaker.expression("#{options.option '23','2','5','$','%','*'}");// *faker.expression("#{date.birthday 'yy DDD hh:mm:ss'}");// 61 327 08:11:45faker.expression("#{csv '1','name_column','#{Name.first_name}','last_name_column','#{Name.last_name}'}");// "name_column","last_name_column"// "Sabrina","Kihn"faker.expression("#{json 'person','#{json ''first_name'',''#{Name.first_name}'',''last_name'',''#{Name.last_name}''}','address','#{json ''country'',''#{Address.country}'',''city'',''#{Address.city}''}'}");// {"person": {"first_name": "Barbie", "last_name": "Durgan"}, "address": {"country": "Albania", "city": "East Catarinahaven"}}

also more examples athttps://www.datafaker.net/documentation/expressions/

Collections

Fakerfaker =newFaker();List<String>names =faker.collection(                              () ->faker.name().firstName(),                              () ->faker.name().lastName())                         .len(3,5)                         .generate();System.out.println(names);// [Skiles, O'Connell, Lorenzo, West]

more examples about that athttps://www.datafaker.net/documentation/sequences/

Streams

Fakerfaker =newFaker();// generate an infinite streamStream<String>names =faker.stream(                              () ->faker.name().firstName(),                              () ->faker.name().lastName())                         .generate();

Formats

Schema

There are 2 ways of data generation in specific formats

  1. Generate it from scratch
  2. There is already a sequence of objects and we could extract from them some values and return it in specific format

For both cases we need aSchema which could describe fields and a way of data generation.In case of generation from scratchSuppliers are enough, in case of transformationFunctions are required

CSV

// transformer could be the same for bothCsvTransformer<Name>transformer =CsvTransformer.<Name>builder().header(true).separator(",").build();// Schema for from scratchSchema<Name,String>fromScratch =Schema.of(field("firstName", () ->faker.name().firstName()),field("lastname", () ->faker.name().lastName()));System.out.println(transformer.generate(fromScratch,2));// POSSIBLE OUTPUT// "first_name" ; "last_name"// "Kimberely" ; "Considine"// "Mariela" ; "Krajcik"// ----------------------// Schema for transformationsSchema<Name,String>schemaForTransformations =Schema.of(field("firstName",Name::firstName),field("lastname",Name::lastName));// Here we pass a collection of Name objects and extract first and lastnames from each elementSystem.out.println(transformer.generate(faker.collection(faker::name).maxLen(2).generate(),schemaForTransformations));// POSSIBLE OUTPUT// "first_name" ; "last_name"// "Kimberely" ; "Considine"// "Mariela" ; "Krajcik"

JShell

# from project root folderjshell --class-path $(ls -d target/*.jar | tr '\n' ':')|  Welcome to JShell -- Version 17.0.4|  For an introduction type: /help introjshell> import net.datafaker.Faker;jshell> import net.datafaker.providers.base.Name;jshell> import net.datafaker.transformations.Schema;jshell> import net.datafaker.transformations.CsvTransformer;jshell> import static net.datafaker.transformations.Field.field;jshell> var faker = new Faker();faker ==> net.datafaker.Faker@c4437c4jshell> Schema fromScratch =   ...>     Schema.of(field("firstName", () -> faker.name().firstName()),   ...>         field("lastname", () -> faker.name().lastName()));fromScratch ==> net.datafaker.transformations.Schema@306a30c7jshell> CsvTransformer<Name> transformer =   ...>     CsvTransformer.<Name>builder().header(false).separator(",").build();transformer ==> net.datafaker.transformations.CsvTransformer@506c589ejshell> System.out.println(transformer.generate(fromScratch, 2));"firstName","lastname""Darcel","Schuppe""Noelle","Smitham"

JSON

Schema<Object, ?>schema =Schema.of(field("firstName", () ->faker.name().firstName()),field("lastName", () ->faker.name().lastName())    );JsonTransformer<Object>transformer =JsonTransformer.builder().build();Stringjson =transformer.generate(schema,2);// [{"firstName": "Oleta", "lastName": "Toy"},// {"firstName": "Gerard", "lastName": "Windler"}]

More complex examples and other formats like YAML, XML could be found athttps://www.datafaker.net/documentation/formats/

Unique Values

Fakerfaker =newFaker();// The values returned in the following lines will never be the same.StringfirstUniqueInstrument =faker.unique().fetchFromYaml("music.instruments");// "Flute"StringsecondUniqueInstrument =faker.unique().fetchFromYaml("music.instruments");// "Clarinet"

More examples can be found inhttps://www.datafaker.net/documentation/unique-values

Custom provider

Add your own custom provider in your app following steps fromhttps://www.datafaker.net/documentation/custom-providers/

Documentation

Getting started.

Contributions

SeeCONTRIBUTING.md

If this is your first time contributing then you may find it helpful to readFIRST_TIME_CONTRIBUTOR.md

Providers

The list below is not complete and shows only a part of available providers. To view the full list of providers, please follow the link:Full list of providers.

  • Address
  • Ancient
  • Animal
  • App
  • Apple
  • Appliance
  • Aqua Teen Hunger Force
  • Artist
  • Australia
  • Avatar
  • Aviation
  • AWS
  • Azure
  • Babylon 5
  • Back To The Future
  • Barcode
  • Baseball
  • Basketball
  • Battlefield 1
  • Beer
  • Big Bang Theory
  • Blood Type
  • Boardgame
  • Bojack Horseman
  • Book
  • Bool
  • Bossa Nova
  • Brand
  • Breaking Bad
  • Brooklyn Nine-Nine
  • Buffy
  • Business
  • CNPJ (Brazilian National Registry of Legal Entities)
  • CPF (Brazilian individual taxpayer registry identification)
  • Camera
  • Cat
  • Chuck Norris
  • Clash of Clans
  • Code
  • Coin
  • Color
  • Commerce
  • Community
  • Company
  • Compass
  • Computer
  • Control
  • Country
  • Credit Card Type
  • Cricket
  • Crypto
  • Currency
  • Date and Time
  • DC Comics
  • Demographic
  • Departed
  • Dessert
  • Device
  • Disease
  • Doctor Who
  • Dog
  • Domain
  • Doraemon
  • Dota 2
  • Dragon Ball
  • Driving License
  • Dumb and Dumber
  • Dune
  • Durations
  • Educator
  • Elden Ring
  • Elder Scrolls
  • Electrical Components
  • Emoji
  • England Football
  • Esports
  • Fallout
  • Family Guy
  • Famous Last Words
  • File
  • Final Space
  • Finance
  • Food
  • Formula 1 (:racing_car:)
  • Friends
  • Fullmetal Alchemist: Brotherhood
  • Funny Name
  • Futurama
  • Game Of Thrones
  • Garment Size
  • Gender
  • Ghostbusters
  • Grateful Dead
  • Gravity Falls
  • Greek Philosopher
  • Hacker
  • Harry Potter
  • Hashing
  • Hearthstone
  • Heroes of the Storm
  • Hey Arnold
  • Hipster
  • Hitchhiker's Guide To The Galaxy
  • Hobbit
  • Hobby
  • Horse
  • House
  • How I Met Your Mother
  • IdNumber
  • Industry Segments
  • Internet
  • Job
  • Joke
  • K-pop (Korean popular music)
  • Kaamelott
  • Language Code
  • League Of Legends
  • Lebowski
  • Locality
  • Lord Of The Rings
  • Lorem
  • Marketing
  • Marvel Snap
  • Mass Effect
  • Matz
  • MBTI
  • Measurement
  • Medical
  • Military
  • Minecraft
  • Money
  • Money Heist
  • Mood
  • Mountaineering
  • Mountains
  • Movie
  • Music
  • Name
  • Naruto
  • Nation
  • Nato Phonetic Alphabet
  • Nigeria
  • Number
  • One Piece
  • Options
  • Oscar Movie
  • Overwatch
  • Passport
  • Password
  • Phone Number
  • Photography
  • Planet
  • Pokemon
  • Princess Bride
  • Programming Language
  • Red Dead Redemption 2
  • Relationship Terms
  • Resident Evil
  • Restaurant
  • Rick and Morty
  • Robin
  • Rock Band
  • RuPaul's Drag Race
  • Science
  • Seinfeld
  • Severance
  • Shakespeare
  • Silicon Valley
  • Simpsons
  • Sip
  • Size
  • Slack Emoji
  • Soul Knight
  • Space
  • StarCraft
  • StarTrek
  • Stock
  • Studio Ghibli
  • Subscription
  • Super Mario
  • Superhero
  • Tea
  • Team
  • The IT Crowd
  • Time
  • Touhou
  • Tron
  • Twin Peaks
  • Twitter
  • University
  • Vehicle
  • Verb
  • Volleyball
  • Weather
  • Witcher
  • Yoda
  • Zelda

Usage with Locales

Fakerfaker =newFaker(newLocale("lang","COUNTRY"));

For example:

StringcaliforniaZipCode =newFaker(newLocale("en","US")).address().zipCodeByState("CA");StringalbanianIdNumber =newFaker(newLocale("sq","AL")).idNumber().valid();StringmoldovanPhone =newFaker(newLocale("ru","MD")).phoneNumber().cellPhone();

Note that most of the data depends on language,but some data depends purely on country (personal ID and phone numbers).In the example above,

  • "en", "sq", "ru" are language codes (English, Albanian and Russian), and
  • "US", "AL", "MD" are country codes (USA, Albanian and Moldova)
Supported Locales
  • ar (Armenian)
  • be_BY (Belarusian)
  • bg_BG (Bulgarian)
  • ca_CA (Canada)
  • ca-CAT
  • cs_CZ (Czech republic)
  • da-DK (language: Danish, country: Denmark)
  • de (German)
  • de-AT (language: German, country: Austria)
  • de_CH (language: German, country: Switzerland)
  • el-GR (Greek)
  • en
  • en-AU (Australia)
  • en-au-ocker
  • en-BORK
  • en-CA
  • en-GB (Great Britain)
  • en-IE (Republic Of Ireland)
  • en-IN (India)
  • en-MS
  • en-NEP
  • en-NG
  • en-NZ
  • en-PAK
  • en-SG
  • en-UG
  • en-US
  • en-ZA
  • en-PH
  • es-AR (language: Spanish, country: Argentina)
  • es_ES (language: Spanish, country: Spain)
  • es-MX (language: Spanish, country: Mexico)
  • es-PY (language: Spanish, country: Paraguay)
  • et_EE (Estonian)
  • fa (Persian)
  • fi-FI (language: Finnish, country: Finland)
  • fr_FR (language: French, country: France)
  • fr_CH (language: French, country: Switzerland)
  • ge_GE (Georgia)
  • he_IL (language: Hebrew, country: Israel)
  • hr_HR (Croatian)
  • hu_HU (Hungarian)
  • hy_AM (Armenian)
  • id_ID (Indonesia)
  • it (Italian)
  • ja_JP (language: Japanese, country: Japan)
  • ka_GE (language: Georgian, country: Georgia)
  • ko_KR (language: Korean, country: South Korea)
  • lv_LV (language: Latvian, country: Latvia)
  • mk_MK (North Macedonia)
  • nb_NO (language: Norwegian, country: Norway)
  • nl_NL (language: Dutch, country: Netherlands)
  • nl_BE (language: Dutch, country: Belgium)
  • pl (language: Polish, country: Poland)
  • pt (language: Portuguese)
  • pt_BR (language: Portuguese, country: Brazil)
  • ro_MD (language: Romanian a.k.a. Moldavian, country: Moldova)
  • ru_RU (Russian)
  • sk_SK (Slovak)
  • sq_AL (Albanian)
  • sv (Swedish)
  • sv-SE (language: Swedish, country: Sweden)
  • ta (Tamil)
  • tr (Turkish)
  • th_TH (language: Thai, country: Thailand)
  • uk_UA (language: Ukrainian, country: Ukraine)
  • uz (Uzbek)
  • vi_VN (language: Vietnamese, country: Vietnam)
  • zh_CN (language: Chinese, country: China)
  • zh-TW (language: Chinese, country: Taiwan)

NATIVE IMAGE

Since version 2.4.1, Datafaker providesexperimental native-image support.This is done by providing areachability-metadata.json file in the META-INF directory.

This file is currently created manually by running all the unit tests, and having an agent collect tracing info:

-agentlib:native-image-agent=config-output-dir=src/main/resources/META-INF/native-image

Future enhancements should automate and improve this process, but if you encounter any unexpected behaviour,feel free to report an issue.

An example usage of this can be found here:https://github.com/datafaker-net/datafaker-native-demo

LICENSE

Copyright (c) 2026 Datafaker.net See the LICENSE file for license rights and limitations.

About

Generating fake data for the JVM (Java, Kotlin, Groovy) has never been easier!

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Contributors228


[8]ページ先頭

©2009-2026 Movatter.jp