Skip to content
/ faker Public

🚀 Ultimate fake data generator for Go with zero dependencies

License

Notifications You must be signed in to change notification settings

jaswdr/faker

Folders and files

NameName
Last commit message
Last commit date
Apr 30, 2024
Aug 10, 2022
Oct 10, 2021
Oct 28, 2020
Jun 21, 2022
Oct 9, 2020
Oct 9, 2020
Mar 22, 2018
May 27, 2024
Oct 9, 2020
Oct 29, 2024
Dec 22, 2022
Aug 10, 2022
Dec 23, 2020
Dec 23, 2020
Dec 23, 2020
Jul 16, 2022
Jul 16, 2022
Aug 10, 2022
Aug 10, 2022
Aug 11, 2022
Oct 9, 2020
Aug 4, 2022
Aug 4, 2022
Jul 5, 2022
Aug 10, 2022
Aug 11, 2022
Aug 10, 2022
Jul 16, 2022
Nov 19, 2023
Oct 10, 2023
Oct 10, 2023
Aug 10, 2022
Aug 10, 2022
Aug 7, 2022
Aug 7, 2022
Dec 23, 2020
Dec 23, 2020
Oct 9, 2024
Oct 9, 2024
Aug 10, 2022
Aug 7, 2022
Dec 23, 2020
Dec 23, 2020
Aug 10, 2022
Dec 23, 2020
Oct 15, 2021
Jan 16, 2022
Jan 16, 2022
Jan 16, 2022
Jan 20, 2024
Aug 10, 2022
Aug 10, 2022
Apr 24, 2024
Apr 25, 2024
Aug 10, 2022
Aug 10, 2022
Jun 12, 2023
Jan 27, 2022
Aug 18, 2023
Aug 18, 2023
Dec 23, 2020
Dec 23, 2020
Jun 1, 2023
Aug 10, 2022
Jun 21, 2022
Aug 10, 2022
Aug 10, 2022
Oct 6, 2020
Aug 10, 2022
Jan 16, 2022
Apr 25, 2024
Apr 25, 2024
Sep 26, 2023
Mar 22, 2023
Jun 1, 2023
Dec 23, 2020
Aug 10, 2022
Mar 26, 2018
Mar 22, 2023
Mar 22, 2023
May 3, 2021
Nov 1, 2024
Nov 1, 2024
Mar 22, 2023
Mar 22, 2023
Apr 19, 2024
Oct 8, 2020
Jun 1, 2023
Dec 23, 2020
Nov 19, 2023
Mar 22, 2023
Jul 13, 2023
May 10, 2023
Aug 10, 2022
Oct 8, 2020

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.11 and < 1.20 for 1.X and Go >= 1.20 for 2.X

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

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 or dep ensure to get 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

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 maitained by Jonathan Schweder (@jaswdr) and many others