A comprehensive Go library for generating realistic fake data across 300+ categories with zero dependencies.
Gofakeit is a Go library for generating realistic fake data across a wide range of categories, including personal information, addresses, products, text, and more. It solves the problem of needing believable test data for development, testing, and demonstrations without manual entry or external APIs.
Go developers who need to seed databases, create mock APIs, generate test fixtures, or build prototypes with realistic sample data.
Developers choose Gofakeit for its extensive built-in data types, zero dependencies, easy struct population, and flexibility to extend with custom generators, making it a fast and reliable solution for fake data needs.
Random fake data generator written in go
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
With over 310 built-in functions, it generates realistic fake data for names, addresses, products, and hundreds of other types, covering most testing and prototyping needs out of the box.
The struct tag support allows automatic population of Go structs with random data using custom tags like `fake:"{firstname}"`, saving significant manual setup time for unit tests.
Developers can add custom data generation logic via AddFuncLookup, making it adaptable to niche requirements, as shown in the custom 'friendname' and 'jumbleword' examples.
Supports multiple random sources like PCG, ChaCha8, and crypto/rand, enabling reproducible outputs for testing or secure data generation, with easy seed control.
As a Go library, it's not usable in projects built with other languages, restricting its utility in polyglot environments where tools like Faker.js might be preferred.
While powerful, the template engine requires knowledge of Go's text/template syntax and added helpers, which can be overkill for simple data generation tasks.
It focuses on generating individual data points; creating complex, interrelated data sets (e.g., with consistent foreign keys) requires additional manual logic outside the library.