Skip to content

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Feb 18, 2024

This PR contains the following updates:

Package Change Age Confidence
github.com/brianvoe/gofakeit/v5 v5.11.2v7.14.0 age confidence

Release Notes

brianvoe/gofakeit (github.com/brianvoe/gofakeit/v5)

v7.14.0

Compare Source

v7.13.0

Compare Source

v7.12.1

Compare Source

v7.12.0

Compare Source

v7.11.0

Compare Source

v7.10.0

Compare Source

v7.9.0: ID Generator

Compare Source

New: ID() — Fast, Human-Readable Random Identifier

(GoFakeIt v7.9.0)

gofakeit.ID() is a new high-performance identifier generator designed for speed, readability, and practically zero collision probability.

Unlike UUID v4 or XID, this generator is intentionally random-first, not structure-based.
Perfect for mock APIs, test data, fixtures, seed data, and temporary identifiers.


Highlights

  • Human readable alphabet, no confusing characters
    23456789abcdefghjkmnpqrstuvwxyz (no 1, l, i or 0, o to alleviate confusion)
  • Fast
  • Memory Allocation
  • Generates from your rand source
  • Shorter than UUID, faster than XID, and requires no coordination

Example

id := gofakeit.ID()
fmt.Println(id)
// → "3t9qf4c92npxhw7bg6y0"

Performance Benchmarks

Measured on Go 1.25

Generator / Function Benchmark Name ops/sec ns/op B/op allocs/op
gofakeit.ID() BenchmarkID-10 31,383,146 37.8 ns 24 1
gofakeit.UUIDv4() BenchmarkUUIDv4-10 22,131,577 53.8 ns 48 1
github.com/rs/xid BenchmarkXID-10 16,190,817 74.2 ns 0 0
github.com/google/uuid (v4) BenchmarkGoogleUUIDv4-10 3,098,770 386.1 ns 64 2

Takeaway: gofakeit.ID() is ~2× faster than XID and ~10× faster than UUID v4, while being shorter and human-readable.


Collision Probability (Randomness Math)

  • ID length: 20 characters
  • Alphabet: 32 slots with one duplicated character (intentional) → avoids retries, maximizes speed
  • Effective entropy: ≈ 98.25 bits

Even under very large bursts, duplication is astronomically unlikely

Collision probability when generating n IDs within 1 second (birthday bound)
n (IDs in 1s) gofakeit.ID() collision probability
100,000 0.00000000000000000001326
1,000,000 0.000000000000000001326017
10,000,000 0.000000000000000132601736
100,000,000 0.000000000000013260173678
1,000,000,000 0.000000000001326017367838

For comparison (same n):

  • UUID v4 (122 bits): much lower probabilities (but significantly slower and longer)
  • XID: structural uniqueness (time + machine + pid + counter). Treat collisions as operationally zero when configured normally.

Need structural, sortable IDs? Use XID or Snowflake.
Want random, readable, fast? Use gofakeit.ID().


RNG Behavior

Mode Behavior
Default (gofakeit.ID()) PCG for speed, seeded via crypto/rand → fast + unpredictable
Full crypto (NewFaker(source.NewCrypto())) crypto/rand for every ID → maximum randomness (slower)
Deterministic (New(seed)) PCG with fixed seed → reproducible ID sequences (useful for tests/fixtures)

We seed PCG with a cryptographic seed when seed == 0. This prevents accidental identical streams across processes/containers.


Example Usage

package main

import (
	"fmt"

	"github.com/brianvoe/gofakeit/v7"
	"github.com/brianvoe/gofakeit/v7/source"
)

func main() {
	// Fast ID — PCG, automatically crypto-seeded
	fmt.Println("fast ID:", gofakeit.ID())

	// Cryptographically secure per-ID RNG
	crypto := source.NewCrypto()
	faker := gofakeit.NewFaker(crypto, true)
	fmt.Println("crypto ID:", faker.ID())
}

v7.8.2

Compare Source

v7.8.1

Compare Source

v7.8.0

Compare Source

v7.7.3

Compare Source

v7.7.2

Compare Source

v7.7.1

Compare Source

v7.7.0

Compare Source

v7.6.0

Compare Source

v7.5.1

Compare Source

v7.5.0

Compare Source

v7.4.0

Compare Source

v7.3.0: ISBN

Compare Source

📚 New Feature: ISBN Generation

This release adds support for generating valid ISBN identifiers, perfect for mock book data or publishing applications.

Generate a valid ISBN-10 or ISBN-13 string with customizable separator.

gofakeit.ISBN(ISBNOptions{Version: "13", Separator: "-"}) // "978-1-2345-6789-0"
🧰 Options
Field Description
Version "10" or "13" (default is "13")
Separator Custom string separator (e.g. "-", "")

Thanks to @​phoenisx , gofakeit is even more versatile for testing systems that work with books, publishing tools, or educational content.

v7.2.1

Compare Source

v7.2.0

Compare Source

v7.1.2

Compare Source

v7.1.1

Compare Source

v7.1.0

Compare Source

v7.0.4

Compare Source

v7.0.3

Compare Source

v7.0.2

Compare Source

v7.0.1

Compare Source

v7.0.0: - math/rand/v2

Compare Source

Gofakeit v7: What's New!

🎲 math/rand/v2 Integration

  • Better RNG 🔒: Now using math/rand/v2 for a more simplistic implementation and two new source types(pcg, chacha8).
  • Simplified faker 🧹: Refined faker struct for ease of use, mirroring the simplicity improvements of math/rand/v2.

✨ Highlights

  • New Sources : math/rand/v2 added PCG and ChaCha8. Gofakeit also added a sub package called source with additional sources in it.

Example New and NewFaker usage

import (
	"github.com/brianvoe/gofakeit/v7"
	"github.com/brianvoe/gofakeit/v7/source"
	"math/rand/v2"
)

// Uses math/rand/v2(PCG Pseudo) with mutex locking
faker := gofakeit.New(0)

// NewFaker takes in a source and whether or not it should be thread safe
faker := gofakeit.NewFaker(source rand.Source, threadSafe bool)

// PCG Pseudo
faker := gofakeit.NewFaker(rand.NewPCG(11, 11), true)

// ChaCha8
faker := gofakeit.NewFaker(rand.NewChaCha8([32]byte{0, 1, 2, 3, 4, 5}), true)

// Additional from Gofakeit sub package source

// JSF(Jenkins Small Fast)
faker := gofakeit.NewFaker(source.NewJSF(11), true)

// SFC(Simple Fast Counter)
faker := gofakeit.NewFaker(source.NewSFC(11), true)

// Crypto - Uses crypto/rand
faker := gofakeit.NewFaker(source.NewCrypto(), true)

// Dumb - simple incrementing number
faker := gofakeit.NewFaker(source.NewDumb(11), true)

🙏 Acknowledgments

A huge shoutout to our contributors and users! Your feedback and support have been invaluable. 🌟

v6.28.0: Descriptions!!!

Compare Source

Thanks to the contributor @​se-omar for all his great work in updating all the descriptions for lookups.

What's Changed

Full Changelog: brianvoe/gofakeit@v6.27.0...v6.28.0

v6.27.0

Compare Source

v6.26.4

Compare Source

v6.26.3

Compare Source

v6.26.2

Compare Source

v6.26.1

Compare Source

v6.26.0: Products!!! v6.26.0

Compare Source

🚀 Unleash the Power of Gofakeit 2.0: Elevate Your Data Faking Game! 🚀

We're thrilled to introduce the latest and greatest update to Gofakeit, and this time, we've supercharged your data faking experience with a suite of powerful new functions! Say hello to the game-changing Product module, a feature-packed addition that will revolutionize the way you generate fake product information. 🛍️✨

🎁 Introducing the Product() Function:
Get ready to dive into a world of limitless possibilities with the Product() function! It's your go-to command for creating realistic and captivating fake product data effortlessly. Harness the magic within this function to craft dynamic, authentic product information that will leave your users amazed and engaged.

🏷️ ProductName() – Unleash the Creativity:
Forge compelling product identities with the ProductName() function. From quirky gadgets to sophisticated fashion pieces, this function lets you generate catchy and unique names that captivate your audience.

📝 ProductDescription() – Tell a Story:
Bring your products to life with the ProductDescription() function! Craft vivid and intriguing descriptions that go beyond the mundane, ensuring your fake data is as immersive as it is imaginative. Spark curiosity and keep your users hooked.

🔖 ProductCategory() – Define the Essence:
Organize your products seamlessly with the ProductCategory() function. From electronics to fashion, create a diverse range of categories that add depth and structure to your fake data, making it more realistic and relatable.

🌟 ProductFeature() – Highlight the Best:
Elevate your product data with the ProductFeature() function! Showcase unique features that set your fake products apart. Whether it's cutting-edge technology or innovative design, this function lets you highlight the essence of your creations.

🛠️ ProductMaterial() – Craft Authenticity:
Immerse your users in the tactile world of your fake products with the ProductMaterial() function. Specify materials that resonate with authenticity, allowing your users to envision the quality and feel of the items you've meticulously crafted.

🎉 Elevate your data generation game to new heights with Gofakeit 2.0! 🎉 Unleash creativity, captivate your audience, and make your fake data more convincing than ever before. The world is your oyster, and with Gofakeit's new Product module, you're the master creator of captivating, realistic product information! 🚀🌐💼

Upgrade now and experience the thrill of data faking like never before! 🚀✨ #Gofakeit

v6.25.0: Templates!!! v6.25.0

Compare Source

🚀 Exciting New Release for Gofakeit v6!

We're thrilled to introduce the latest version of Gofakeit, packed with a powerful addition to enhance your templating experience. Brace yourself for the introduction of custom outputs using Golang's template engine! 🌟

SPECIAL THANKS to @​Mrpye for his work on this!

🎭 Template Magic
Now, you can unleash your creativity with custom outputs using Golang's template engine. We've integrated all available functions into the template engine, providing you with a versatile toolkit to craft dynamic and personalized content.

🛠 Additional Functions
But that's not all! We've gone the extra mile and added some game-changing functions to supercharge your template building:

ToUpper & ToLower: Easily manipulate text case for a polished appearance.
ToString: Swiftly convert any data type to a string.
ToDate: Effortlessly transform strings into time.Time objects.
SpliceAny, SpliceString, SpliceUInt, SpliceInt: Build slices dynamically, perfect for weighted scenarios and random selections.

🌐 Example Usages
To give you a taste of the excitement, here's a snippet showcasing the newfound template capabilities:

// Your template goes here
template := `
Subject: {{RandomString (SliceString "Greetings" "Hello" "Hi")}}

Dear {{LastName}},

{{RandomString (SliceString "Greetings!" "Hello there!" "Hi, how are you?")}}

{{Paragraph 1 5 10 "\n\n"}}

{{RandomString (SliceString "Warm regards" "Best wishes" "Sincerely")}}
{{$person:=Person}}
{{$person.FirstName}} {{$person.LastName}}
{{$person.Email}}
{{$person.Phone}}
`

// Applying the template
value, err := gofakeit.Template(template, nil)

v6.24.0

Compare Source

v6.23.2

Compare Source

v6.23.1

Compare Source

v6.23.0

Compare Source

v6.22.0: New Functions!!!

Compare Source

Thanks to the help of @​ViridianForge and @​dminkovski! We now have Books, Movies, Middle Names, Blurbs and Company Slogans.

v6.21.0: Added fakable interface

Compare Source

See https://github.com/brianvoe/gofakeit#fakeable-types

What's Changed

New Contributors

Full Changelog: brianvoe/gofakeit@v6.20.2...v6.21.0

v6.20.2

Compare Source

v6.20.1

Compare Source

v6.20.0

Compare Source

v6.19.0

Compare Source

v6.18.0

Compare Source

v6.17.0

Compare Source

v6.16.0

Compare Source

v6.15.0

Compare Source

v6.14.5

Compare Source

v6.14.4

Compare Source

v6.14.3

Compare Source

v6.14.2

Compare Source

v6.14.1

Compare Source

v6.14.0

Compare Source

v6.13.2

Compare Source

v6.13.1

Compare Source

v6.13.0

Compare Source

v6.12.2

Compare Source

v6.12.1

Compare Source

v6.12.0

Compare Source

v6.11.1

Compare Source

v6.11.0

Compare Source

v6.10.0

Compare Source

v6.9.0

Compare Source

v6.8.0

Compare Source

v6.7.1

Compare Source

v6.7.0

Compare Source

v6.6.0

Compare Source

v6.5.0

Compare Source

v6.4.1

Compare Source

v6.4.0

Compare Source

v6.3.0

Compare Source

v6.2.2

Compare Source

v6.2.1

Compare Source

v6.2.0

Compare Source

v6.1.1

Compare Source

v6.1.0

Compare Source

v6.0.4

Compare Source

v6.0.3

Compare Source

v6.0.2

Compare Source

v6.0.1

Compare Source

v6.0.0

Compare Source


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot force-pushed the renovate/github.com-brianvoe-gofakeit-v5-7.x branch 2 times, most recently from 6c60aec to f80101b Compare February 27, 2024 19:34
@renovate renovate bot force-pushed the renovate/github.com-brianvoe-gofakeit-v5-7.x branch from f80101b to 405bbff Compare April 14, 2024 11:38
@renovate renovate bot force-pushed the renovate/github.com-brianvoe-gofakeit-v5-7.x branch from 405bbff to fffeb45 Compare May 7, 2024 20:30
@renovate
Copy link
Contributor Author

renovate bot commented Jun 4, 2024

ℹ Artifact update notice

File name: go.mod

In order to perform the update(s) described in the table above, Renovate ran the go get command, which resulted in the following additional change(s):

  • 1 additional dependency was updated
  • The go directive was updated for compatibility reasons

Details:

Package Change
go 1.14 -> 1.22
github.com/docker/distribution v2.7.1+incompatible -> v2.7.1+incompatible

@renovate renovate bot force-pushed the renovate/github.com-brianvoe-gofakeit-v5-7.x branch 2 times, most recently from 8aee816 to f4ca321 Compare June 21, 2024 20:01
@renovate renovate bot force-pushed the renovate/github.com-brianvoe-gofakeit-v5-7.x branch from f4ca321 to a5f2aff Compare July 14, 2024 09:36
@renovate renovate bot force-pushed the renovate/github.com-brianvoe-gofakeit-v5-7.x branch from a5f2aff to 0e5eeb2 Compare September 11, 2024 15:44
@renovate renovate bot force-pushed the renovate/github.com-brianvoe-gofakeit-v5-7.x branch 2 times, most recently from 4575bda to 165f9a0 Compare October 31, 2024 02:28
@renovate renovate bot force-pushed the renovate/github.com-brianvoe-gofakeit-v5-7.x branch from 165f9a0 to 65f3952 Compare November 17, 2024 15:19
@renovate renovate bot force-pushed the renovate/github.com-brianvoe-gofakeit-v5-7.x branch from 65f3952 to 1087461 Compare December 22, 2024 15:52
@renovate renovate bot force-pushed the renovate/github.com-brianvoe-gofakeit-v5-7.x branch from 1087461 to 3c4e24f Compare January 30, 2025 23:04
@renovate renovate bot force-pushed the renovate/github.com-brianvoe-gofakeit-v5-7.x branch from 3c4e24f to 76835c4 Compare March 3, 2025 13:31
@renovate renovate bot force-pushed the renovate/github.com-brianvoe-gofakeit-v5-7.x branch from 76835c4 to d1eb20e Compare March 11, 2025 15:38
@renovate renovate bot force-pushed the renovate/github.com-brianvoe-gofakeit-v5-7.x branch from d1eb20e to 1f3cc91 Compare April 8, 2025 15:42
@renovate renovate bot force-pushed the renovate/github.com-brianvoe-gofakeit-v5-7.x branch from 1f3cc91 to 11e3b06 Compare May 7, 2025 10:33
@renovate renovate bot force-pushed the renovate/github.com-brianvoe-gofakeit-v5-7.x branch from 11e3b06 to 3216b95 Compare June 26, 2025 15:32
@renovate renovate bot force-pushed the renovate/github.com-brianvoe-gofakeit-v5-7.x branch from 3216b95 to 398227b Compare August 10, 2025 15:44
@renovate renovate bot force-pushed the renovate/github.com-brianvoe-gofakeit-v5-7.x branch from 398227b to 8dcba5a Compare August 19, 2025 20:01
@renovate renovate bot force-pushed the renovate/github.com-brianvoe-gofakeit-v5-7.x branch from 8dcba5a to 19e9bc8 Compare August 31, 2025 11:46
@renovate renovate bot force-pushed the renovate/github.com-brianvoe-gofakeit-v5-7.x branch from 19e9bc8 to f2cb92b Compare September 9, 2025 03:09
@renovate renovate bot force-pushed the renovate/github.com-brianvoe-gofakeit-v5-7.x branch 4 times, most recently from 50b92b7 to 2b9fa0d Compare September 24, 2025 18:45
@renovate renovate bot force-pushed the renovate/github.com-brianvoe-gofakeit-v5-7.x branch from 2b9fa0d to 99f1caf Compare October 12, 2025 14:40
@renovate renovate bot force-pushed the renovate/github.com-brianvoe-gofakeit-v5-7.x branch from 99f1caf to d4e64ce Compare October 24, 2025 20:45
@renovate renovate bot force-pushed the renovate/github.com-brianvoe-gofakeit-v5-7.x branch from d4e64ce to e65091d Compare November 1, 2025 03:51
@renovate renovate bot force-pushed the renovate/github.com-brianvoe-gofakeit-v5-7.x branch from e65091d to a3df25e Compare November 8, 2025 06:52
@renovate renovate bot force-pushed the renovate/github.com-brianvoe-gofakeit-v5-7.x branch 2 times, most recently from 2bd2c9c to ef18822 Compare November 23, 2025 18:25
@renovate renovate bot force-pushed the renovate/github.com-brianvoe-gofakeit-v5-7.x branch 2 times, most recently from 6de502c to 0c73c0d Compare December 3, 2025 22:36
@renovate
Copy link
Contributor Author

renovate bot commented Dec 18, 2025

ℹ️ Artifact update notice

File name: go.mod

In order to perform the update(s) described in the table above, Renovate ran the go get command, which resulted in the following additional change(s):

  • 1 additional dependency was updated
  • The go directive was updated for compatibility reasons

Details:

Package Change
go 1.14 -> 1.22
github.com/docker/distribution v2.7.1+incompatible -> v2.7.1+incompatible

@renovate renovate bot force-pushed the renovate/github.com-brianvoe-gofakeit-v5-7.x branch from 0c73c0d to 098750a Compare December 27, 2025 18:44
@renovate renovate bot force-pushed the renovate/github.com-brianvoe-gofakeit-v5-7.x branch from 098750a to 4cf1d62 Compare December 28, 2025 06:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants