{"id":23193499,"url":"https://github.com/mcraiha/datagensharp","last_synced_at":"2025-08-11T18:10:37.534Z","repository":{"id":37851025,"uuid":"139884771","full_name":"mcraiha/DataGenSharp","owner":"mcraiha","description":"C# managed library for generating data","archived":false,"fork":false,"pushed_at":"2022-11-28T19:27:12.000Z","size":930,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-08-01T03:55:29.419Z","etag":null,"topics":["csharp","data","generator"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mcraiha.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGE-LOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-07-05T18:08:36.000Z","updated_at":"2022-01-14T13:48:37.000Z","dependencies_parsed_at":"2023-01-20T22:36:01.754Z","dependency_job_id":null,"html_url":"https://github.com/mcraiha/DataGenSharp","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mcraiha/DataGenSharp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcraiha%2FDataGenSharp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcraiha%2FDataGenSharp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcraiha%2FDataGenSharp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcraiha%2FDataGenSharp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mcraiha","download_url":"https://codeload.github.com/mcraiha/DataGenSharp/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcraiha%2FDataGenSharp/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269931564,"owners_count":24498747,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-11T02:00:10.019Z","response_time":75,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["csharp","data","generator"],"created_at":"2024-12-18T13:11:41.104Z","updated_at":"2025-08-11T18:10:37.493Z","avatar_url":"https://github.com/mcraiha.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DataGenSharp\nC# managed library for generating data, e.g. JSON and CSV/TSV files\n\n[![.NET](https://github.com/mcraiha/DataGenSharp/actions/workflows/dotnet.yml/badge.svg)](https://github.com/mcraiha/DataGenSharp/actions/workflows/dotnet.yml)\n\n## Why\nBecause there are situations where I have to generate data for testing, so it is better to have a tool for that.\n\n## Released version\nCurrent [nuget release](https://www.nuget.org/packages/LibDataGenSharp/) is 0.9.1-git-8fd607a\n\n## How to use\n1. Build .dll or include [lib folder](lib) in your project\n2. Use code like (you can test this example in [DotnetFiddle](https://dotnetfiddle.net/Gz6aBG) )\n```csharp\n// Arrange\nGenerateData generateData = new GenerateData();\nRunningNumberGenerator runningNumberGenerator = new RunningNumberGenerator();\nrunningNumberGenerator.Init(null, seed: 1337);\ngenerateData.AddGeneratorToChain(runningNumberGenerator);\n\nNameGenerator nameGenerator = new NameGenerator();\nnameGenerator.Init(null, seed: 1337);\ngenerateData.AddGeneratorToChain(nameGenerator);\n\ngenerateData.AddWantedElement((\"Id\", runningNumberGenerator, null, typeof(int), null));\ngenerateData.AddWantedElement((\"Firstname\", nameGenerator, \"firstname\", typeof(string), null));\ngenerateData.AddWantedElement((\"Lastname\", nameGenerator, \"lastname\", typeof(string), null));\n\nSomeSeparatedValueOutput outCSV = new SomeSeparatedValueOutput();\ngenerateData.output = outCSV;\n\nMemoryStream ms = new MemoryStream();\n\n// Act\ngenerateData.Generate(ms);\nstring result = Encoding.UTF8.GetString(ms.ToArray());\n```\n\nto generate data like\n```csv\nId,Firstname,Lastname\n0,Jacob,Smith\n1,Sophia,Johnson\n2,Mason,Williams\n3,Isabella,Brown\n4,William,Jones\n5,Emma,Garcia\n6,Jayden,Miller\n7,Olivia,Davis\n8,Noah,Rodriguez\n9,Ava,Martinez\n```\n\nall features are under **DatagenSharp** namespace\n\n## How should my brain handle this\n\n### In nutshell\n1. Create instance of **GenerateData**\n2. Add all generators \n3. Add all wanted elements to (use generators given in step 2.)\n4. Add output \n5. Generate\n\n### Additional tips\n- One generator can be used by multiple chains\n- Chain fetches data from generator and then applies mutators in order to that given data\n- Generators are notified when one line/entry has been completely generated\n\n## How do I build this\n### Requirements\nDotnet core 2.0 environment\n\n### Build .dll\nMove to lib folder and run\n```bash\ndotnet build\n```\n\n### Build nuget\nUse [create-nuget-debug.ps1](create-nuget-debug.ps1) go generate the command, it will be something like\n```bash\ndotnet pack --configuration Debug /p:InformationalVersion=\"07/21/2018 09:10:01 8866971970797f9d9300438f31bd8712b0defae4\" --version-suffix 8866971\n```\n(this will be improved in future!)\n\n## Testing\nMove to [tests](tests) folder if you aren't there yet\n### Requirements \n* nunit\n* NUnit3TestAdapter\n* Microsoft.NET.Test.Sdk\n* Newtonsoft.Json\n\nAll requirements are restored when you run\n```bash\ndotnet restore\n```\n\n### Run tests\nJust call\n```bash\ndotnet test\n```\n\n## What is in\n* Running number generator\n* Name generator (supports English-US and Finnish names)\n* Basic CSV/TSV output\n* Basic JSON output\n* Few test cases\n* Random null mutator\n* Email mutator\n* Boolean generator\n* Boolean mutator\n* Guid generator\n* Integer generator\n* IPv4 generator\n* Bitcoin address generator\n\n## What is work in progress\n* More generators\n* More mutators\n* More test cases\n\n\n## What is missing\n\n* Benchmarks\n* Better help messages\n\n## License\nAll code is released under *\"Do whatever you want\"* license aka [Unlicense](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmcraiha%2Fdatagensharp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmcraiha%2Fdatagensharp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmcraiha%2Fdatagensharp/lists"}