Faker is a Go library that generates fake data for you.

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

Buy Me A Coffee

PkgGoDev Build Status Coverage Status Go Report Card Gitpod ready-to-code Codacy Badge

Test it in Go Playground

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

Installation

Add this to your Go file

import "github.com/jaswdr/faker"

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"

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

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

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

    faker.Lorem().Text()
    // 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 faker.Name() yields a different (random) result.

p := faker.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

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]}

See more formatters in docs

Get involved

Have a question? Use the Discussions page.

Development

Create a fork and get the code.

$ go get github.com/jaswdr/faker

Do your changes, add tests, run the tests.

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

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

License

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

Owner
Jonathan Schweder
System Development Engineer, Linux Developer, Go and Python Developer, Kernel Enthusiastic, Speaker, DevOps
Jonathan Schweder
Comments
  • refactor: allow random to be mocked

    refactor: allow random to be mocked

    Description

    This uses an interface of GeneratorInterface type that implements Intn and Int (previously used directly from the rand package.

    By doing this, we can now reliably mock rand by inserting expected values to test certain logic flows which may not have been fully covered.

    This includes changes that are in the existing ethereum PR (#91) as I wrote the sample test code based on a method that was renamed in that PR.

    If this style is approved I will push somemore commits to explicitly test the logic flow for RandomBitcoin

    Are you trying to fix an existing issue?

    #92

    Go Version

    abc@c63bccef3747:~/workspace/oss/faker$ go version
    go version go1.17.3 linux/amd64
    

    Go Tests

    abc@c63bccef3747:~/workspace/oss/faker$ go test ./...
    ok      github.com/jaswdr/faker 3.833s
    abc@c63bccef3747:~/workspace/oss/faker$ 
    
  • [BUG] Flaking tests around time.

    [BUG] Flaking tests around time.

    Some of the tests are flaky and failing randomly - mainly related to TestUNIXTime and the like. I've noticed 3 of them randomly failing so far and am opening this issue to investigate at a later stage. This should not be related to any changes in the crypto feature that I was writing as these are in completely different files and non-overlapping.

    Edit: Managed to get the verbose output.

    === RUN   TestRFC1123
        time_test.go:74: 
            Expected: (int) 29 
            Got:      (int) 31
    --- FAIL: TestRFC1123 (0.00s)
    
    === RUN   TestUnixDate
        time_test.go:43: 
            Expected: (int) 28 
            Got:      (int) 30
    --- FAIL: TestUnixDate (0.00s)
    
    === RUN   TestRFC822
        time_test.go:55: 
            Expected: (int) 19 
            Got:      (int) 21
    --- FAIL: TestRFC822 (0.00s)
    
  • Add implementation of binary string generator for Faker

    Add implementation of binary string generator for Faker

    Description

    Added a binary string generator for faker.

    Are you trying to fix an existing issue?

    No

    Go Version

    $ go version
    go version go1.17.1 windows/amd64
    

    Go Tests

    $ go test
    PASS
    ok      github.com/jaswdr/faker 12.114s
    
  • Fix replacing whitespaces about company name for email address

    Fix replacing whitespaces about company name for email address

    Description

    Fix replacing whitespaces about company name for email address.

    Are you trying to fix an existing issue?

    No.

    Go Version

    $ go version
    go version go1.16 darwin/amd64
    

    Go Tests

    $ go test
    ok  	github.com/jaswdr/faker	4.834s
    
  • 31: fix IntBetween generator

    31: fix IntBetween generator

    Description

    Fixes issue #31. While this is a sample fix, it doesn't fix failing tests yet.

    Are you trying to fix an existing issue?

    https://github.com/jaswdr/faker/issues/31

    Go Version

    $ go version
    go version go1.15.2 linux/amd64
    

    Go Tests

    $ go test -v
    # replace this line with the output
    
  • [FEATURE] Have 100% of test coverage

    [FEATURE] Have 100% of test coverage

    Is your feature request related to a problem? Please describe. This is an improvement on our current test coverage.

    Describe the solution you'd like Recently we have added the test coverage report, considering that this project is focused in generate fake data for tests, is good to have 100% of test coverage.

    Describe alternatives you've considered For normal projects, it's common knowledge that 100% don't guarantee quality, but in this case this project is focused on tests, so is important to us to have at minimum a good test coverage.

    Additional context The confirmation that we reach this goal is having 100% in coveralls

    Important! Use the full-tests-coverage branch as target of pull requests.

  • [BUG] Uint() is panicking

    [BUG] Uint() is panicking

    Hi! First and foremost, I'd like to thank You an amazing work :) I've been on PHP's side for a long time, where I was using Faker a lot. After switching to Go world, this faker is definitely the easiest and most convenient to use. I haven't seen any issue reported regarding Uint(), so here is what I found out.

    Describe the bug Calling Faker.Uint() panics.

    To Reproduce

    import (
    	"fmt"
    	"testing"
    
    	"github.com/jaswdr/faker"
    )
    
    func TestUint(t *testing.T) {
    	fakerInstance := faker.New()
    
    	t.Run("It is panicking", func(t *testing.T) {
    		//userId := uint(fakerInstance.Int()) // Temporary workaround
    		userId := fakerInstance.UInt()
    
    		fmt.Println(userId)
    	})
    }
    

    Expected behavior UInt() returns a random uint value.

    Screenshots obraz

    obraz obraz

    Desktop (please complete the following information):

    • OS: macOS 12.2
    • go version output: go version go1.17.6 darwin/amd64

    Additional context I was able to debug, that UInt() calls IntBetween(0, maxValueOf_int_type), and IntBetween() is later calling f.Generator.Intn(diff+1). The diff+1 is the problem here since it overflows int type max value and, in the end, when rand.Intn() receives negative value, it panics.

    I'm also attaching a few screenshots from debugging chain.

  • person.go: 100% test coverage

    person.go: 100% test coverage

    Description

    100% test coverage for person.go.

    Are you trying to fix an existing issue?

    Includes partial fixes for #28.

    Go Version

    $ go version
    go version go1.15.2 linux/amd64
    

    Go Tests

    $ go test -v
    === RUN   TestCityPrefix
    --- PASS: TestCityPrefix (0.00s)
    === RUN   TestSecondaryAddress
    --- PASS: TestSecondaryAddress (0.00s)
    === RUN   TestState
    --- PASS: TestState (0.00s)
    === RUN   TestStateAbbr
    --- PASS: TestStateAbbr (0.00s)
    === RUN   TestCitySuffix
    --- PASS: TestCitySuffix (0.00s)
    === RUN   TestStreetSuffix
    --- PASS: TestStreetSuffix (0.00s)
    === RUN   TestBuildingNumber
    --- PASS: TestBuildingNumber (0.00s)
    === RUN   TestCity
    --- PASS: TestCity (0.00s)
    === RUN   TestStreetName
    --- PASS: TestStreetName (0.00s)
    === RUN   TestStreetAddress
    --- PASS: TestStreetAddress (0.00s)
    === RUN   TestPostCode
    --- PASS: TestPostCode (0.00s)
    === RUN   TestAddress
    --- PASS: TestAddress (0.00s)
    === RUN   TestCountry
    --- PASS: TestCountry (0.00s)
    === RUN   TestLatitude
    --- PASS: TestLatitude (0.00s)
    === RUN   TestLongitude
    --- PASS: TestLongitude (0.00s)
    === RUN   TestBooleanBool
    --- PASS: TestBooleanBool (0.00s)
    === RUN   TestBooleanBoolWithChance
    --- PASS: TestBooleanBoolWithChance (0.00s)
    === RUN   TestBooleanInt
    --- PASS: TestBooleanInt (0.00s)
    === RUN   TestBooleanString
    --- PASS: TestBooleanString (0.00s)
    === RUN   TestHex
    --- PASS: TestHex (0.00s)
    === RUN   TestRGB
    --- PASS: TestRGB (0.00s)
    === RUN   TestRGBAsArray
    --- PASS: TestRGBAsArray (0.00s)
    === RUN   TestCSS
    --- PASS: TestCSS (0.00s)
    === RUN   TestSafeColorName
    --- PASS: TestSafeColorName (0.00s)
    === RUN   TestColorName
    --- PASS: TestColorName (0.00s)
    === RUN   TestCompanyCatchPhrase
    --- PASS: TestCompanyCatchPhrase (0.00s)
    === RUN   TestCompanyBS
    --- PASS: TestCompanyBS (0.00s)
    === RUN   TestCompanySuffix
    --- PASS: TestCompanySuffix (0.00s)
    === RUN   TestCompanyName
    --- PASS: TestCompanyName (0.00s)
    === RUN   TestCompanyJobTitle
    --- PASS: TestCompanyJobTitle (0.00s)
    === RUN   TestNew
    --- PASS: TestNew (0.00s)
    === RUN   TestNewWithSeed
    --- PASS: TestNewWithSeed (0.00s)
    === RUN   TestRandomDigit
    --- PASS: TestRandomDigit (0.00s)
    === RUN   TestRandomDigitNot
    --- PASS: TestRandomDigitNot (0.00s)
    === RUN   TestRandomDigitNotNull
    --- PASS: TestRandomDigitNotNull (0.00s)
    === RUN   TestRandomNumber
    --- PASS: TestRandomNumber (0.00s)
    === RUN   TestInt
    --- PASS: TestInt (0.00s)
    === RUN   TestInt64
    --- PASS: TestInt64 (0.00s)
    === RUN   TestInt32
    --- PASS: TestInt32 (0.00s)
    === RUN   TestIntBetween
    --- PASS: TestIntBetween (0.00s)
    === RUN   TestRandomFloat
    --- PASS: TestRandomFloat (0.00s)
    === RUN   TestLetter
    --- PASS: TestLetter (0.00s)
    === RUN   TestRandomLetter
    --- PASS: TestRandomLetter (0.00s)
    === RUN   TestRandomIntElement
    --- PASS: TestRandomIntElement (0.00s)
    === RUN   TestShuffleString
    --- PASS: TestShuffleString (0.00s)
    === RUN   TestNumerify
    --- PASS: TestNumerify (0.00s)
    === RUN   TestLexify
    --- PASS: TestLexify (0.00s)
    === RUN   TestBothify
    --- PASS: TestBothify (0.00s)
    === RUN   TestAsciify
    --- PASS: TestAsciify (0.00s)
    === RUN   TestBool
    --- PASS: TestBool (0.00s)
    === RUN   TestBoolWithChance
    --- PASS: TestBoolWithChance (0.00s)
    === RUN   TestExtension
    --- PASS: TestExtension (0.00s)
    === RUN   TestFileWithExtension
    --- PASS: TestFileWithExtension (0.00s)
    === RUN   TestImage
    --- PASS: TestImage (0.00s)
    === RUN   TestUser
    --- PASS: TestUser (0.00s)
    === RUN   TestDomain
    --- PASS: TestDomain (0.00s)
    === RUN   TestEmail
    --- PASS: TestEmail (0.00s)
    === RUN   TestFreeEmail
    --- PASS: TestFreeEmail (0.00s)
    === RUN   TestSafeEmail
    --- PASS: TestSafeEmail (0.00s)
    === RUN   TestCompanyEmail
    --- PASS: TestCompanyEmail (0.00s)
    === RUN   TestPassword
    --- PASS: TestPassword (0.00s)
    === RUN   TestTLD
    --- PASS: TestTLD (0.00s)
    === RUN   TestSlug
    --- PASS: TestSlug (0.00s)
    === RUN   TestURL
    --- PASS: TestURL (0.00s)
    === RUN   TestIpv4
    --- PASS: TestIpv4 (0.00s)
    === RUN   TestLocalIpv4
    --- PASS: TestLocalIpv4 (0.00s)
    === RUN   TestIpv6
    --- PASS: TestIpv6 (0.00s)
    === RUN   TestMacAddress
    --- PASS: TestMacAddress (0.00s)
    === RUN   TestHTTPMethod
    --- PASS: TestHTTPMethod (0.00s)
    === RUN   TestQuery
    --- PASS: TestQuery (0.00s)
    === RUN   TestLorem
    --- PASS: TestLorem (0.00s)
    === RUN   TestWord
    --- PASS: TestWord (0.00s)
    === RUN   TestWords
    --- PASS: TestWords (0.00s)
    === RUN   TestSentence
    --- PASS: TestSentence (0.00s)
    === RUN   TestSentences
    --- PASS: TestSentences (0.00s)
    === RUN   TestParagraph
    --- PASS: TestParagraph (0.00s)
    === RUN   TestParagraphs
    --- PASS: TestParagraphs (0.00s)
    === RUN   TestText
    --- PASS: TestText (0.00s)
    === RUN   TestBytes
    --- PASS: TestBytes (0.00s)
    === RUN   TestMimeType
    --- PASS: TestMimeType (0.00s)
    === RUN   TestCreditCardType
    --- PASS: TestCreditCardType (0.00s)
    === RUN   TestCreditCardNumber
    --- PASS: TestCreditCardNumber (0.00s)
    === RUN   TestCreditCardExpirationDateString
    --- PASS: TestCreditCardExpirationDateString (0.00s)
    === RUN   TestTitleMale
    --- PASS: TestTitleMale (0.00s)
    === RUN   TestTitleFemale
    --- PASS: TestTitleFemale (0.00s)
    === RUN   TestTitle
    --- PASS: TestTitle (0.00s)
    === RUN   TestSuffix
    --- PASS: TestSuffix (0.00s)
    === RUN   TestFirstNameMale
    --- PASS: TestFirstNameMale (0.00s)
    === RUN   TestFirstNameFemale
    --- PASS: TestFirstNameFemale (0.00s)
    === RUN   TestFirstName
    --- PASS: TestFirstName (0.00s)
    === RUN   TestLastName
    --- PASS: TestLastName (0.00s)
    === RUN   TestName
    --- PASS: TestName (0.00s)
    === RUN   TestGender
    --- PASS: TestGender (0.00s)
    === RUN   TestGenderMale
    --- PASS: TestGenderMale (0.00s)
    === RUN   TestGenderFemale
    --- PASS: TestGenderFemale (0.00s)
    === RUN   TestNameAndGender
    --- PASS: TestNameAndGender (0.00s)
    === RUN   TestAreaCode
    --- PASS: TestAreaCode (0.00s)
    === RUN   TestExchangeCode
    --- PASS: TestExchangeCode (0.00s)
    === RUN   TestNumber
    --- PASS: TestNumber (0.00s)
    === RUN   TestTollFreeAreaCode
    --- PASS: TestTollFreeAreaCode (0.00s)
    === RUN   TestTollFreeNumber
    --- PASS: TestTollFreeNumber (0.00s)
    === RUN   TestE164Number
    --- PASS: TestE164Number (0.00s)
    === RUN   TestTimeUnix
    --- PASS: TestTimeUnix (0.00s)
    === RUN   TestTimeTime
    --- PASS: TestTimeTime (0.00s)
    === RUN   TestISO8601
    --- PASS: TestISO8601 (0.00s)
    === RUN   TestANSIC
    --- PASS: TestANSIC (0.00s)
    === RUN   TestUnixDate
    --- PASS: TestUnixDate (0.00s)
    === RUN   TestRubyDate
    --- PASS: TestRubyDate (0.00s)
    === RUN   TestRFC822
    --- PASS: TestRFC822 (0.00s)
    === RUN   TestRFC822Z
    --- PASS: TestRFC822Z (0.00s)
    === RUN   TestRFC850
    --- PASS: TestRFC850 (0.00s)
    === RUN   TestRFC1123
    --- PASS: TestRFC1123 (0.00s)
    === RUN   TestRFC1123Z
    --- PASS: TestRFC1123Z (0.00s)
    === RUN   TestRFC3339
    --- PASS: TestRFC3339 (0.00s)
    === RUN   TestRFC3339Nano
    --- PASS: TestRFC3339Nano (0.00s)
    === RUN   TestKitchen
    --- PASS: TestKitchen (0.00s)
    === RUN   TestTimeBetween
    --- PASS: TestTimeBetween (0.00s)
    === RUN   TestAmPm
    --- PASS: TestAmPm (0.00s)
    === RUN   TestDayOfMonth
    --- PASS: TestDayOfMonth (0.00s)
    === RUN   TestDayOfWeek
    --- PASS: TestDayOfWeek (0.00s)
    === RUN   TestMonth
    --- PASS: TestMonth (0.00s)
    === RUN   TestMonthName
    --- PASS: TestMonthName (0.00s)
    === RUN   TestYear
    --- PASS: TestYear (0.00s)
    === RUN   TestCentury
    --- PASS: TestCentury (0.00s)
    === RUN   TestTimezone
    --- PASS: TestTimezone (0.00s)
    === RUN   TestInternetExplorer
    --- PASS: TestInternetExplorer (0.00s)
    === RUN   TestOpera
    --- PASS: TestOpera (0.00s)
    === RUN   TestSafari
    --- PASS: TestSafari (0.00s)
    === RUN   TestFirefox
    --- PASS: TestFirefox (0.00s)
    === RUN   TestChrome
    --- PASS: TestChrome (0.00s)
    === RUN   TestUserAgent
    --- PASS: TestUserAgent (0.00s)
    === RUN   TestUUIDv4
    --- PASS: TestUUIDv4 (0.00s)
    === RUN   TestUUIDV4UniqueInSequence
    --- PASS: TestUUIDV4UniqueInSequence (0.00s)
    === RUN   TestGenerateVideoID
    --- PASS: TestGenerateVideoID (0.00s)
    === RUN   TestGenerateFullURL
    --- PASS: TestGenerateFullURL (0.00s)
    === RUN   TestGenerateShareURL
    --- PASS: TestGenerateShareURL (0.00s)
    === RUN   TestGenerateEmbededURL
    --- PASS: TestGenerateEmbededURL (0.00s)
    PASS
    ok  	github.com/jaswdr/faker	0.013s
    === RUN   TestFakeGenerator
    --- PASS: TestFakeGenerator (0.00s)
    PASS
    ok  	github.com/jaswdr/faker/internal/test	(cached)
    
  • add template docstring

    add template docstring

    background: I am experimenting with my AST-based GoDoc generator tool for this, the current template goes like this

    1. struct -> [struct_name] is a faker struct for [struct_name]
    2. methods -> [function_name] returns a fake [function_name] for [struct_name]

    feel free to:

    1. close the PR if you're looking for better docs
    2. suggest a better template comment if you think this way is fine

    P.S some of the files are not commented because of a bug in my tool which I'm still trying to figure out

  • Make project compatible with new versions of Go

    Make project compatible with new versions of Go

    Our tests are failing for new versions of Go for all operational systems, see https://travis-ci.org/github/jaswdr/faker/builds/733533193

    We need to fix this to make the library compatible and reliable with all new Go versions.

  • Added fake Directories and Absolute File Paths

    Added fake Directories and Absolute File Paths

    Description

    This PR adds fake directories to file.go, including tests.

    Are you trying to fix an existing issue?

    No

    Go Version

    $ go version
    # replace this line with the output
    

    Go Tests

    ➜  faker git:(file_directories) ✗ go test -v -run "TestDriveLetter|TestAbsolutePath|TestDirectory"
    === RUN   TestDirectory
    --- PASS: TestDirectory (0.00s)
    === RUN   TestDriveLetter
    --- PASS: TestDriveLetter (0.00s)
    === RUN   TestAbsolutePath
    --- PASS: TestAbsolutePath (0.00s)
    PASS
    ok      github.com/jaswdr/faker 0.004s
    
    
    ➜  faker git:(file_directories) ✗ GOOS=windows go test -v -run "TestDriveLetter|TestAbsolutePath|TestDirectory"
    === RUN   TestDirectory
    --- PASS: TestDirectory (0.00s)
    === RUN   TestDriveLetter
    --- PASS: TestDriveLetter (0.00s)
    === RUN   TestAbsolutePath
    --- PASS: TestAbsolutePath (0.00s)
    PASS
    ok      github.com/jaswdr/faker 0.166s
    
    
  • Add shuffle slice utility

    Add shuffle slice utility

    Is your feature request related to a problem? Please describe. I'm trying to fake a randomized array of unique enums

    Describe the solution you'd like To include shuffleSlice as Faker.ShuffleSlice

    func ShuffleSlice[T any](slice []T) []T {
    	rand.Shuffle(len(slice), func(i, j int) {
    		slice[i], slice[j] = slice[j], slice[i]
    	})
    
    	return slice
    }
    

    go playground example https://play.golang.com/p/1rQ2O-0aNOx

  • (SCC-SA1019) Using a deprecated function, variable, constant or field

    (SCC-SA1019) Using a deprecated function, variable, constant or field

    Description

    Sometimes a struct field, function, type, or even a whole package becomes redundant or unnecessary but must be kept for compatibility with existing programs. These should not be used except for compatibility with legacy systems.

    Occurrences

    There is 1 occurrence of this issue in the repository.

    See all occurrences on DeepSource → deepsource.io/gh/jaswdr/faker/issue/SCC-SA1019/occurrences/

  • [BUG] Different coverage percents every time the test run

    [BUG] Different coverage percents every time the test run

    Describe the bug If you run the test with the coverprofile flag it return different results every time.

    To Reproduce

    $ for i in {1..10}; do go test -coverprofile=coverage.out .; done
    

    E.g.

    $ for i in {1..10}; do go test -coverprofile=coverage.out .; done
    ok  	faker	6.565s	coverage: 95.6% of statements
    ok  	faker	5.586s	coverage: 94.9% of statements
    ok  	faker	6.202s	coverage: 95.6% of statements
    ok  	faker	5.363s	coverage: 96.2% of statements
    ok  	faker	5.253s	coverage: 96.4% of statements
    ok  	faker	5.439s	coverage: 95.9% of statements
    ok  	faker	5.360s	coverage: 96.3% of statements
    ok  	faker	5.089s	coverage: 96.2% of statements
    ok  	faker	6.661s	coverage: 95.1% of statements
    ok  	faker	9.051s	coverage: 96.2% of statements
    

    Expected behavior It should return the same value every time.

    Desktop (please complete the following information):

    • OS: MacOS Monterrey 12.4
    • go version output: go version go1.11 darwin/amd64
  • [BUG] Struct().Fill() is not correctly handling nested structures

    [BUG] Struct().Fill() is not correctly handling nested structures

    Describe the bug goroutine stack exceeds 1000000000-byte limit

    To Reproduce

    type A struct {
    children []*A
    }
    tmp := A{}
    f.Struct().Fill(&tmp)
    

    Expected behavior A clear and concise description of what you expected to happen.

    Screenshots image

    Desktop (please complete the following information):

    • OS: macOS 12.2.1
    • go version output: go version go1.17.3 darwin/amd64
  • [FEATURE] Add a mechanism to generate a fake data json

    [FEATURE] Add a mechanism to generate a fake data json

    Is your feature request related to a problem? Please describe. Currently we have several generators available in Faker. But what if we have a mechanism which takes a format as input and returns a data with same format completely generated by the generators of faker. The format will contain multiple data fields and nested complexity. This can be useful for generating multiple test scenarios in one go.

    Describe the solution you'd like You recursive search and build of data using faker generators.

Go-banner-printer - This library is to simply print a ASCII banner when you start the application

This library is to simply print a ASCII banner when you start the application.

Jan 18, 2022
This service will help you detect any waste of resources in your AWS account

Frugal-Hero This service will help you detect any waste of resources in your AWS account. The policy is: if it is not useful, delete it! Requirements

Jan 31, 2022
Extract structured data from web sites. Web sites scraping.
Extract structured data from web sites. Web sites scraping.

Dataflow kit Dataflow kit ("DFK") is a Web Scraping framework for Gophers. It extracts data from web pages, following the specified CSS Selectors. You

Jan 7, 2023
Encoding and decoding for fixed-width formatted data

fixedwidth Package fixedwidth provides encoding and decoding for fixed-width formatted Data. go get github.com/ianlopshire/go-fixedwidth Usage Struct

Dec 16, 2022
Gotabulate - Easily pretty-print your tabular data with Go

Gotabulate - Easily pretty-print tabular data Summary Go-Tabulate - Generic Go Library for easy pretty-printing of tabular data. Installation go get g

Dec 27, 2022
ByNom is a Go package for parsing byte sequences, suitable for parsing text and binary data

ByNom is a Go package for parsing byte sequences. Its goal is to provide tools to build safe byte parsers without compromising the speed or memo

May 5, 2021
Parse data and test fixtures from markdown files, and patch them programmatically, too.

go-testmark Do you need test fixtures and example data for your project, in a language agnostic way? Do you want it to be easy to combine with documen

Oct 31, 2022
Easily to convert JSON data to Markdown Table

Easily to convert JSON data to Markdown Table

Oct 28, 2022
Auto-gen fuzzing wrappers from normal code. Automatically find buggy call sequences, including data races & deadlocks. Supports rich signature types.

fzgen fzgen auto-generates fuzzing wrappers for Go 1.18, optionally finds problematic API call sequences, can automatically wire outputs to inputs acr

Dec 23, 2022
Build "Dictionary of the Old Norwegian Language" into easier-to-use data formats

Old Norwegian Dictionary Builder Build "Dictionary of the Old Norwegian Language" into easier-to-use data formats. Available formats: JSON DSL XML Usa

Oct 11, 2022
A fast, easy-of-use and dependency free custom mapping from .csv data into Golang structs

csvparser This package provides a fast and easy-of-use custom mapping from .csv data into Golang structs. Index Pre-requisites Installation Examples C

Nov 14, 2022
A general purpose application and library for aligning text.

align A general purpose application that aligns text The focus of this application is to provide a fast, efficient, and useful tool for aligning text.

Sep 27, 2022
A NMEA parser library in pure Go

go-nmea This is a NMEA library for the Go programming language (Golang). Features Parse individual NMEA 0183 sentences Support for sentences with NMEA

Dec 20, 2022
Go library for the TOML language

go-toml Go library for the TOML format. This library supports TOML version v1.0.0-rc.3 Features Go-toml provides the following features for using data

Dec 27, 2022
A Go library to parse and format vCard

go-vcard A Go library to parse and format vCard. Usage f, err := os.Open("cards.vcf") if err != nil { log.Fatal(err) } defer f.Close() dec := vcard.

Dec 26, 2022
A declarative struct-tag-based HTML unmarshaling or scraping package for Go built on top of the goquery library

goq Example import ( "log" "net/http" "astuart.co/goq" ) // Structured representation for github file name table type example struct { Title str

Dec 12, 2022
omniparser: a native Golang ETL streaming parser and transform library for CSV, JSON, XML, EDI, text, etc.
omniparser: a native Golang ETL streaming parser and transform library for CSV, JSON, XML, EDI, text, etc.

omniparser Omniparser is a native Golang ETL parser that ingests input data of various formats (CSV, txt, fixed length/width, XML, EDI/X12/EDIFACT, JS

Jan 4, 2023
The Go library for working with delimited separated value (DSV).

Package dsv is a Go library for working with delimited separated value (DSV). NOTE: This package has been deprecated. See https://github.com/shuLhan/s

Sep 15, 2021
Upskirt markdown library bindings for Go

Goskirt Package goskirt provides Go-bindings for the excellent Sundown Markdown parser. (F/K/A Upskirt). To use goskirt, create a new Goskirt-value wi

Oct 23, 2022