Skip to content

jaswdr/faker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

277 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Faker is a Go library that generates fake data for you. Whether you need to bootstrap your database, create good-looking XML documents, fill-in your persistence to stress test it, or anonymize data taken from a production service, Faker is for you.

Faker is heavily inspired by PHP"s Faker

Faker requires Go >= 1.22 for 2.X

PkgGoDev codecov Go Report Card Codacy Badge CodeFactor Release Gitpod ready-to-code

Test it directly from your browser

Start at https://play.golang.org/p/JpTagDGBaHK

Installation

Add this to your Go file

import "github.com/jaswdr/faker/v2"

And run go get to fetch the package.

Basic Usage

Use faker.New() to create and initialize a faker generator, which can generate data by accessing properties named after the type of data you want.

import "github.com/jaswdr/faker/v2"

func main() {
    fake := faker.New()

    fake.Person().Name()
    // Lucy Cechtelar

    fake.Address().Address()
    // 426 Jordy Lodge

    fake.Lorem().Text(100)
    // Dolores sit sint laboriosam dolorem culpa et autem. Beatae nam sunt fugit
    // et sit et mollitia sed.
    // Fuga deserunt tempora facere magni omnis. Omnis quia temporibus laudantium
    // sit minima sint.
}

Even if this example shows a method access, each call to fake.Name() yields a different (random) result.

p := fake.Person()

for i:=0; i < 10; i++ {
  fmt.Println(p.Name())
}
  // Adaline Reichel
  // Dr. Santa Prosacco DVM
  // Noemy Vandervort V
  // Lexi O"Conner
  // Gracie Weber
  // Roscoe Johns
  // Emmett Lebsack
  // Keegan Thiel
  // Wellington Koelpin II
  // Ms. Karley Kiehn V

You can also generate a profile image.

image := p.Image()

fmt.Println(image.Name())
// /tmp/profil-picture-img-1064677774.jfif

fmt.Printf("%+v", image)
// &{file:0xc0002e4300}

Generate fake data using Structs

type ExampleStruct struct {
	SimpleStringField string
	SimpleNumber int
	SimpleBool bool
	SomeFormatedString string `fake:"??? ###"`
	SomeStringArray [5]string `fake:"????"`
}

example := ExampleStruct{}
f.Struct().Fill(&example)
fmt.Printf("%+v", example)
//{SimpleStringField:87576a01c2a547b2bbf9b7c736d1db40 SimpleNumber:9223372036854775807 SimpleBool:false SomeFormatedString:cxo 321 SomeStringArray:[effr swxp ldnj obcs nvlg]}

Generate random placeholder images using LoremFlickr

// get a *os.File pointing to a file that is a random image
image := f.LoremFlickr().Image(100, 100, []string{}, "", false)

fmt.Println(image.Name())
// /tmp/loremflickr-img-4101493944.jpg

Generate profile images using ThisPersonDoesNotExist

profileImage := f.ProfileImage().Image()

fmt.Println(profileImage.Name())
// /tmp/profil-picture-img-4022222298.jfif

See more formatters in docs

Generator Catalog

Access generators via f := faker.New() then f.<Provider>().<Method>().

Provider Key methods Description
Person() Name, FirstName, LastName, SSN, Contact, Image People and identity
Address() Address, City, State, ZipCode, Latitude, Longitude US-style addresses
Phone() Number, E164Number, TollFreeNumber Phone numbers
Internet() Email, URL, IPv4, IPv6, Password, UserAgent Web and network data
Company() Name, CatchPhrase, JobTitle, EIN Business data
Payment() CreditCardType, CreditCardNumber, CreditCardExpirationDateString Payment cards
Lorem() Word, Sentence, Paragraph, Text Placeholder text
Time() Recent, Past, Soon, Future, ISO8601, RFC3339 Dates and times
UUID() V4 UUID generation
Color() Hex, RGB, SafeColorName Colors
File() / Directory() Extension, Path, AbsolutePath File system paths
Struct() Fill, FillWithDepth, RegisterFunction Struct tag filling
Crypto() BitcoinAddress, EthereumAddress Crypto addresses
Image() / LoremFlickr() / ProfileImage() Image Generated or remote images
Beer(), Car(), Food(), Pet(), Gamer(), Pokemon(), Music(), YouTube() various Specialty datasets

Core formatting helpers on Faker itself: Numerify, Lexify, Bothify, Asciify, IntBetween, Bool, BoolWithChance.

Development

Create a fork and get the code.

$ go get github.com/jaswdr/faker/v2

Do your changes, add tests, run the tests.

$ go test
PASS
ok      github.com/jaswdr/faker/v2 2.966s

Push to your fork and send a new pull request from your fork to this repository.

Versioning

Faker is maintained under the Semantic Versioning guidelines. Starting at 2.X, we only support maintained versions of Go. Which according to Go's Release Policy means that we only support the two newer major versions.

License

Faker is released under the MIT Licence. See the bundled LICENSE file for details.

Maintainer

Created and maintained by Jonathan Schweder (@jaswdr) and many others

Sponsor this project

Contributors

Languages