HISTORY.md
Release Date: 2025-10-25
Release Date: 2025-09-25
Release Date: 2025-04-12
Internet.Avatar() URL generation. Moves from Cloudflare IPFS to IPFS.io.BelgianExtensionTests.Release Date: 2025-02-20
Randomizer.ULong() arithmetic overflow. Thanks @reuterma24!Release Date: 2024-09-02
Release Date: 2024-04-27
Images.LoremPixelUrl() is removed. Thanks @marijnz0r!Bogus.Extensions.Belgium extension methods below. Thanks @vyruz1986!f.Person.NationalNumber() - Rijksregisternummer / Numéro NationaleRelease Date: 2024-04-27
Release Date: 2024-03-09
Release Date: 2024-03-02
Release Date: 2024-01-14
Bogus.Extensions.Poland extension methods below. Thanks Mik1mak!f.Person.Pesel() - Number of Powszechny Elektroniczny System Ewidencji Ludności (PESEL)f.Company.Nip() - Numer identyfikacji podatkowej (NIP)f.Company.Regon() - Number of Rejestr Gospodarki Narodowej (REGON)f.Person.Samordningsnummer() extension method in Bogus.Extensions.Sweden. Swedish coordination number. Thanks aschan!Release Date: 2024-01-13
f.Person.Cnp() extension method in Bogus.Extensions.Romania. Generates Romanian Personal Identification number (CNP). Thanks totpero!Release Date: 2024-01-12
f.Finance.VatNumber() extension method in Bogus.Extensions.UnitedKingdom. Generates a UK compatible VAT registration number. Thanks p1971!Release Date: 2024-01-01
Release Date: 2023-12-26
Release Date: 2023-12-11
sv locale; first/last names. Thanks @EBD232!Release Date: 2022-03-27
Randomizer.localSeed to protected. Thanks @davermaltbyRelease Date: 2021-11-22
Release Date: 2021-08-29
Release Date: 2021-02-21
Bogus.Person.Personnummer() Swedish national identity numberRelease Date: 2021-02-07
nep locale renamed to ne.de locale; Date dataset changed.es locale; gender names added.fr locale; Date dataset changed.nb_NO locale; gender names added.nl locale; Address, Commerce, Date, Hacker, Internet datasets changed; gender names added.pt_BR locale; gender names added.tr locale; gender names added.vi locale; gender names added. Date, Lorem, datasets changed.Internet.Port(); generate port numbers from 1 to 65535.Release Date: 2021-01-31
Release Date: 2020-12-12
pt_BR city names.Release Date: 2020-11-28
Internet.Avatar() 403 Forbidden URLs. AWS S3 bucket hosting uifaces.com avatars was disabled. Avatars are now decentrally hosted on IPFS globally and retrieved from Cloudflare's IPFS gateway.Release Date: 2020-10-03
pt_BR locale where Address.City() threw ArgumentOutOfRangeException.Release Date: 2020-09-13, UNPUBLISHED FROM NUGET
DataSet.Get(category, path) overload.Release Date: 2020-09-13, UNPUBLISHED FROM NUGET
Music dataset with .Genre() method.Date.TimeZoneString().fi locale.hr locale.cz locale updated.en locale updated.en_IE locale updated.en_IND locale updated.fa locale updated.fr locale updated.ja locale updated.pl locale updated.pt_BR locale updated.ru locale updated.sv locale updated.vi locale updated.zh_CN locale updated.Release Date: 2020-08-15
Random.Decimal() implementation reverted to previous v29 implementation. Avoids arithmetic OverflowException when calling Random.Decimal(0, decimal.MaxValue). The v30 implementation moved to Bogus.Extensions namespace as Random.Decimal2() which can generate more decimal precision.Release Date: 2020-08-13, UNPUBLISHED FROM NUGET
f.Address.CountryOfUnitedKingdom() extension method in Bogus.Extensions.UnitedKingdom.Release Date: 2020-08-05, UNPUBLISHED FROM NUGET
Release Date: 2020-07-23
CheckDigitExtension methods to publicRelease Date: 2020-06-29
Internet.UserAgent() sometimes generating invalid user agent strings that could not be parsed by System.Net.Http.HttpRequestMessage.Headers.Release Date: 2020-06-20
Finance.Litecoin().Commerce.ProductDescription().Image.PlaceImgUrl().en_NG Nigerian locale.en updated.nl_BE updated.de updated.ru updated.zh_CN updated.zh_TW updated.ar updated.cz updated.es_MX updated.sk updated.it updated.Release Date: 2020-06-14
Random.Number() now inclusive of max: int.MaxValue.Random.Even() better random distribution and range checking.Random.Odd() better random distribution and range checking.Random.Int() bug fixed where .Int() may not return int.MaxValue.Random.Decimal() with greater decimal precision.Release Date: 2020-04-11
ru locale data. Two ru city names could appear as one.Release Date: 2020-02-10
Internet.Avatar() may have changed..OrNull(f) extension method signatures for type-safe with nullable primitive types, structs, and reference types via in parameter to avoid ambiguous calls.Release Date: 2019-12-10
Person.Fødselsnummer(). Thanks @mika-s!Release Date: 2019-12-03
Person.Cpf() extension method. Previously, only the first call to Person.Cpf(includeFormatSymbols) respected the includeFormatSymbols parameter due to the final result being saved in Person context. Person.Cpf() now respects the includeFormatSymbols parameter after subsequent repeat calls to Cpf() with the same Person. Thanks for testing @ArthNRick!Release Date: 2019-11-30
includeFormatSymbols parameter to include or exclude formatting characters for Brazil Person.Cpf() and Company.Cnpj() extension methods.Release Date: 2019-10-14
Person.Ssn() will change.Internet.Ip() now avoids generating IP addresses with a leading zero. For example, Bogus will not generate an IP address with a leading zero like 0.1.2.3. Note: Deterministic IPs generated with Internet.Ip() will change.Internet.IpAddress(), Internet.Ipv6Address(), Internet.IpEndPoint(), and Internet.Ipv6EndPoint().Internet.UrlRootedPath() to generate random /foo/bar paths.Internet.UrlWithPath(fileExt:".txt") fileExt extension parameter to generate URLs with a specific file extension.Release Date: 2019-10-04
.GenerateForever(ruleset) to use ruleset parameter when supplied as argument. Thanks @StanleyGoldman!Release Date: 2019-09-20
Faker<T> using Faker<IFoo>.CustomInstantiator(f => new Foo()). Thanks Rowland!Release Date: 2019-09-10
Faker<T>.RuleFor(string, (f, t) => ) overload..RuleFor overload logic. Simplified overload call chain.Faker<T>.RuleForInternal() renamed to Faker<T>.AddRule()Release Date: 2019-09-09
Faker<T>.RuleFor('string',...). Helps cases that require rules for protected or hidden members of T.Release Date: 2019-08-28
Internet.Url() including spaces in domain names for pt_BR locale or any locale with compound first names that may contain spaces. Thanks RodrigoRodriguesX10!DataSets.System. Better XML docs and lower array allocations. Thanks bartdebever!DataSets.Lorem. Thanks bartdebever!Release Date: 2019-07-07
Bogus.DataSets.Vehicle.GbRegistrationPlate() in Bogus.Extensions.UnitedKingdom extension namespace to generate GB registration plates. Thanks @colinangusmackay.Release Date: 2019-07-02
Internet.Email() or Internet.UserName() in locales other than en.Finance.Iban(countryCode) ISO3166 country code parameter. Allows generating IBAN codes for specific countries. The country code must be a supported otherwise an exception is thrown.Internet.Email() and Internet.UserName() are more respectful of specified locale using character transliteration..Transliterate() string extension method in Bogus.Extensions namespace.Internet.UserNameUnicode() that preserves Unicode characters in user names.Utils.Slugify using compiled Regex..OrNull[T]() where T : struct overload which makes it easier to work with nullable types without type casting.defaultValue parameter to .OrDefault(f, weight, defaultValue) that can default to a different value than the default keyword.Release Date: 2019-05-02
Faker.DefaultStrictMode from working.Randomizer.Utf16String that generates technically valid Unicode with paired high/low surrogates.placeholder.com image service.Release Date: 2019-03-22
Person(seed) constructor for seeding person objects by integer. Thanks @sgoguen!Person.DateOfBirth not using Date.SystemClock as 'now' reference.Release Date: 2019-02-26
Vehicle data set added.en_IND state abbreviations and state names updated.en_CA, fr_CA improved Canadian postal codes.pt_PT locale updated with new and changed data.en company names updated.pt_PT locale updated.Date.Weekday and Date.Month that could cause locale weekday/month values to default to en.Release Date: 2019-01-17
nl locale with extra name.first_name, address.street_suffix, and company.suffix.Release Date: 2019-01-06
f.Images.LoremFlickrUrl() (https://loremflickr.com) image service.Release Date: 2018-12-11
Company.CompanyName() is used with az locale.Release Date: 2018-11-27
Image categories. The image service is usually down or very slow. Consider using Images.PicsumUrl() as a replacement. This version is an obsolete-warn, next release will have Image category APIs removed.Release Date: 2018-11-03
tr - Turkish locale first/last names updated. Lorem data set updated. Thanks ahmetcanaydemir!f.Image.PicsumUrl (https://picsum.photos) service as faster alternative to Lorem Pixel.Release Date: 2018-10-02
af_ZA - New South Africa (Afrikaans) locale added.zu_ZA - New South Africa (Zulu) locale added.en_ZA - South Africa (English) locale updatedru - Russian locale updated.id_ID - Indonesia locale updated.es - Spanish locale updated.f.Images.DatUri now accepts an HTML color parameter..ToLower causing invalid JSON dataset path .ToLowerInvariant now used.Release Date: 2018-09-27
T in when Faker<T> is used.Release Date: 2018-09-26, UNPUBLISHED FROM NUGET
nullWeight parameter to .OrNull() extension method for weighted generation of null values..OrDefault() extension method. Thanks @anorborg!Release Date: 2018-09-26, UNPUBLISHED FROM NUGET
en_ZA - South Africa (English) locale added.fr_CH - French (Switzerland) locale added.pl locale "phone numbers" updated.sv locale "names" section updated.en, de, de_AT "names" section updated.f.Commerce.Ean8 EAN-8 product barcode number generator.f.Commerce.Ean13 EAN-13 product barcode number generator.Release Date: 2018-08-29, UNPUBLISHED FROM NUGET
Faker[T].Generate() with setter cache. Approx 1.7x speedup. Thanks Mpdreamz!Release Date: 2018-08-13
Bogus.Person is used.Bogus.Person.Address.State field.Date.SystemClock static property for setting global time Bogus uses for date calculations.Date.Weekday() should return a weekday not a month.Release Date: 2018-07-18
f.Random.Guid() for better GUID discoverability.Person.Nif() and Company.Nipc() for Portugal. Thanks JoseJr!Release Date: 2018-07-05
f.Finance.Nino() in Bogus.Extensions.UnitedKingdom. Thanks mortware!DateTimeOffset support added to f.Date dataset. Methods are suffixed by "Offset". IE: f.Date.SoonOffset. Thanks Simon!refDate parameter to f.Date.Soon and f.Date.Recent.f.Date.Between(start, end) now respects DateTimeKind.Utc.Release Date: 2018-06-29
Release Date: 2018-06-26
Bogus.Distributions.Gaussian namespace for numerical Normal Distribution generated values! Thanks codersg!uniqueSuffix parameter to Internet.Email() to help with unique email constraints.Release Date: 2018-06-14
.FullName() for locales where both first/last name have genders. Thanks binarycode!Release Date: 2018-05-29
Faker[T] API.Release Date: 2018-05-20
{{name.firstname(Male)}}Enum constraints for methods that only accept enums. Example: f.PickRandom<Enum>().Release Date: 2018-05-17
f.IndexGlobal could be zero twice at start of generation.Release Date: 2018-04-09
Company.Ein() to generate employer identification numbers.Release Date: 2018-04-01
Internet.Color() format options: CSS rgb(...) and delimited RGB.System.AndroidId() to generate GCM registration ID.System.ApplePushToken() to generate a random Apple Push Token.System.BlackBerryPin() to generate a random Black Berry PIN.Randomizer.Hash() to generate random hashes of specified length.Randomizer.String2() to generate random strings with specified character sets.Release Date: 2018-03-29
Randomizer.String method to generate strings. Uses Chars() method.DataSet.ParseTokens(). Thanks @danij!Release Date: 2018-03-02
.ToBogusLocale() on System.Globalization.CultureInfo to help translate from .NET locale codes to Bogus locale codes.Release Date: 2018-02-27
Faker<T>.GenerateBetween(min, max) that generates N objects between min and max. Located in Bogus.Extensions. N should be considered non-deterministic but technically depends on the parameters each time this extension method was called.Lorem.Paragraphs(min, max) overload.Lorem.Paragraph..ShortCode() renamed to .SortCode() as originally intended.DataSet.Get/.GetObject/BObject methods as protected internal. Reducing API surface noise..OrNull in Bogus.Extensions to help create randomly null values. Example: .RuleFor(x=>x.Prop, f=>f.Random.Word().OrNull(f)).Release Date: 2018-01-05
.Ignore(...) a property or field after a rule had already been set.Release Date: 2017-12-23
.Generate(n) now returns List<T> instead of IList<T>.f.Address.CountryCode() ISO 3166-1 alpha-3 country code generator.Bogus.Extensions.Extras namespace for generally useful helper methods.Finance.CreditCardNumberObfuscated() extension to Bogus.Extensions.Extras namespace.CheckDigit() extensions to Bogus.Extensions.Extras namespace.Release Date: 2017-12-16
Person.FullName field.Faker<T>.FinishWith to be called multiple times. Last call wins.Release Date: 2017-12-13
f.Image URL generation.Gender field to Person. Deterministic sequences may have changed.Randomizer.Bool(weight) to generate weighted boolean values of true.CodiceFiscale() extension method added. Extends Person and Finance.Release Date: 2017-11-06
f.Random.Uuid() is now deterministic based on global or local seed.Release Date: 2017-11-04
Faker<T>.Clone(): Clones internal state of a Faker<T> and allows for complex faking scenarios and rule combinations.Faker<T>.UseSeed(n): Allows you to specify a localized seed value on a Faker<T> instead of a global static Randomizer.Seed.Seed determinism for multi-threaded scenarios.Release Date: 2017-11-01
System.ArgumentException.Release Date: 2017-10-26, UNPUBLISHED FROM NUGET
fr: new street address prefixes.fa: new street addresses.pl: removed 2008 value from city.en: new gender first namesnl_BE locale.ro locale.f.Finance.RoutingNumber - Generates an ABA routing number with valid check digit.Faker.GenerateForever that returns IEnumerable<T> with unlimited generated items when iterated over.f.Finance.ShortCode().f.Company.Bs for a correct gramatics.f.Address.Direction. Generates cardinal or ordinal directions.f.Address.CardinalDirection. Generates "North", "South", etc.f.Address.OrdinalDirection. Generates "Northeast", "Southwest", etc.Release Date: 2017-09-14
string.RemoveDiacritics helper method.Release Date: 2017-09-13
f.Person.Henkilötunnus personal identity code generator that sometimes produced 11 characters.f.Finance.Ethereum. Generate an Ethereum address.f.Finance.CreditCardCvv. Generate a random credit card CVV number.f.Finance.CreditCardNumber. Generate a random credit card number.f.Random.Hexadecimal. Generates a random hexadecimal string.f.System.DirectoryPath. Generates a random directory path.f.System.FilePath. Generates a random file path.f.Date.Soon. Generates a date and time that will happen soon.f.Random.ArrayElements. Gets a random subset of an array.f.Random.ListItems. Gets a random subset of a list.f.Company.Cnpj extension method for Brazil. Generates Brazilian company document.f.PhoneNumbers. More realistic US phone numbers.f.Address.Latitude/Longitude with min and max parameters.f.Commerce.Price is now $1.00 (not zero).en_AU - Update Australian postcode ranges.en_IND - Indian postcodes are always numeric.ru - Word corrections.Release Date: 2017-08-24
Release Date: 2017-08-24
.PickRandom(IList) and .PickRandom(ICollection) we can now add .PickRandom("cat", "dog", "fish") back to the API.Release Date: 2017-08-23
Faker.Generate(n) now calls .ToList() under the hood to escape LINQ deferred execution. Remembering to call .ToList() after .Generate(n) was a sticking point for new users writing test assertions on generated values. Please do not call Faker.Generate(n).ToList() as it would execute .ToList() twice. Simply, Faker.Generate(n) is enough.f.Generate and f => f.Make now return IList<T> to signify the breaking change above..GenerateLazy to keep old behavior and returns IEnumerable<T>.PickRandom overload to avoid the compiler from picking wrong PickRandom method.f.PickRandomParam("cat","dog","fish").[Obsolete] methods.Release Date: 2017-08-20
Name.FullName() convenience method to generate a full name.Release Date: 2017-08-02
.Rules() method on RuleSet. Thanks @digitalcyote.Release Date: 2017-07-28
Currency fund codes (BOV, CLF, COU, MXV, UYI).Person.Email having duplicate names.f.PickRandomWithout(ExcludeItem1, ExcludeItem2) added.f.PickRandom("cat", "dog", "fish") added.Release Date: 2017-05-06
f => f.Rant to generate random user content like product reviews.new Faker[T].Rules( (f, t) => ...) as a shortcut for building rules quickly.Address.FullAddressInternet.UrlWithPath allowing to create URLs with random paths.ru (Russian locale) hacker adjective, ing-verb, noun, and verb.Internet.Mac address separator parameter.Release Date: 2017-04-11
ArgumentException that occurs with derived hidden new properties.f => f.Generate(n, i => ...) overload allows use of index when using f.Generate.Release Date: 2017-03-27
.PickRandom(IEnumerable) performance. Thanks @chuuddo."string".ClampLength(max,min) extension method to clamp length of strings between min and max.Randomizer.Int(int.MaxValue, int.MinValue) range overflow not returning random int32 values.Release Date: 2017-03-20
Newtonsoft.Json v10.0.1Release Date: 2017-03-14
.RuleFor(x.Item, "foo"). Eliminates ceremony of f => for simple values.Release Date: 2017-03-13
Sentence.Release Date: 2017-02-23
Order o = orderFaker and var o = (Order)orderFaker without having to call orderFaker.Generate().Release Date: 2017-02-21
IndexGlobal alias for UniqueIndex.IndexFaker for uniqueness in Faker[T] lifetime.IndexVariable a developer controlled index convenience variable.Database dataset to f => f.Database facade.UniqueIndex.Internet.Avatars that returned 404.faker.js v4.1.0.Release Date: 2017-02-18
Internet.UserAgent - Generates browser user agent strings.Internet.Password - Generates user passwords using regex.az/Azerbaijani locale./ character in System.FileName.Helpers.Slugify properly replaces spaces with - dashes.Lorem.Slug slugs some lorem text.Finance.Iban - Generates International Bank Account Numbers (IBAN).Finance.Bic - Generates Bank Identifier Code (BIC) codes.Random.WeightedRandom - Returns a weighted random distribution of items.https:// in random images.Images.DataUri - Generates "data:image/svg" URI with width and height.Database data set for generating column, collation, type stuff.Release Date: 2017-01-19
Release Date: 2017-01-18
Release Date: 2017-01-16
PickRandom(IEnumerable) overload. Thanks joleharkes.Release Date: 2016-12-20
RuleForType(typeof(string)) allows bulk/default for a particular type on a class. Useful for very large classes with a specific type.Release Date: 2016-12-07
f => f.Generate(count, ()=> f.Phone.PhoneNumber()) helper for better fluency when filling properties with List of T.Release Date: 2016-11-25
pt_PT Portuguese (Portugal) locale.Release Date: 2016-10-22
Faker<T>.RuleFor rules to be overridden. Last set rule wins.Release Date: 2016-10-11
Faker<T>.AssertConfigurationIsValid to help in unit testing scenarios.Internet.Ipv6 method to generate IPv6 addresses.Release Date: 2016-08-07
f => f.Commerce on Faker.Release Date: 2016-07-27
cz/Czech localeen, nl, pl, sk, sv locales.Randomizer.AlphaNumeric added.Randomizer.Double now accepts (min,max) argumentsRandomizer for random Decimal, Float, Byte, Bytes, SByte, Int, UInt, ULong, Long, Short, UShort, Char and Chars.Release Date: 2016-07-06
Release Date: 2016-06-27
Release Date: 2016-05-20
Release Date: 2016-05-16
Release Date: 2016-05-16
Release Date: 2016-05-15
Release Date: 2016-05-15
System data set for generating fake file names and mime-types.Date.Timespan for random timespan values.System.Semver for random semantic versions.System.Version for random System.Version objects.Internet.ExampleEmail for simple @example.com email generation.Finance.BitcoinAddress for random bitcoin addresses.Release Date: 2016-03-29
Release Date: 2016-03-29
Release Date: 2016-03-23
Release Date: 2016-03-22
Release Date: 2016-03-21
Release Date: 2016-02-25
Release Date: 2016-02-25
Release Date: 2016-02-15
Release Date: 2016-02-15
Release Date: 2016-01-21
Release Date: 2016-01-21
Release Date: 2016-01-20
Release Date: 2016-01-19
Release Date: 2016-01-18
Release Date: 2016-01-11
Release Date: 2015-12-10
Release Date: 2015-12-09
Release Date: 2015-11-24
Release Date: 2015-10-22
Release Date: 2015-07-21
Release Date: 2015-07-11
Release Date: 2015-07-11
Release Date: 2015-06-22
Release Date: 2015-06-11
Release Date: 2015-06-11
Release Date: 2015-06-10
Release Date: 2015-06-08