{"id":21880670,"url":"https://github.com/vesko-vujovic/dummy-data-rust","last_synced_at":"2026-04-29T19:33:47.365Z","repository":{"id":251975330,"uuid":"839017151","full_name":"vesko-vujovic/dummy-data-rust","owner":"vesko-vujovic","description":"Data generation writen in rust. This generator will generate users, transaction, payment providers and user adresses.","archived":false,"fork":false,"pushed_at":"2024-12-12T20:03:48.000Z","size":23,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-15T15:18:52.000Z","etag":null,"topics":["data-generation","data-generator","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vesko-vujovic.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-06T19:54:37.000Z","updated_at":"2024-12-12T20:03:50.000Z","dependencies_parsed_at":"2025-01-26T18:47:18.904Z","dependency_job_id":"cdfef09a-eaf1-4aa6-bf52-6747e963a0de","html_url":"https://github.com/vesko-vujovic/dummy-data-rust","commit_stats":null,"previous_names":["vesko-vujovic/dummy-data-rust"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/vesko-vujovic/dummy-data-rust","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vesko-vujovic%2Fdummy-data-rust","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vesko-vujovic%2Fdummy-data-rust/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vesko-vujovic%2Fdummy-data-rust/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vesko-vujovic%2Fdummy-data-rust/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vesko-vujovic","download_url":"https://codeload.github.com/vesko-vujovic/dummy-data-rust/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vesko-vujovic%2Fdummy-data-rust/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32441194,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-29T18:12:22.909Z","status":"ssl_error","status_checked_at":"2026-04-29T18:11:33.322Z","response_time":110,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["data-generation","data-generator","rust"],"created_at":"2024-11-28T09:15:29.359Z","updated_at":"2026-04-29T19:33:47.349Z","avatar_url":"https://github.com/vesko-vujovic.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Synthetic Data Generator\n\nA versatile command-line tool written in Rust for generating synthetic data for testing and development purposes. The tool generates realistic-looking data for users, addresses, payment providers, and transactions in either JSON or CSV format.\n\n## Features\n- Generate synthetic data for:\n  - Users (with names, emails, and phone numbers)\n  - Addresses (linked to users)\n  - Payment Providers\n  - Transactions\n- Support for both JSON and CSV output formats\n- Auto-incrementing IDs with customizable starting point for each entity\n- Progress bars for visual feedback\n- Skewed data distribution option for realistic transaction patterns\n- Realistic fake data generation for names, addresses, and contact information\n- Configurable number of records for each entity type\n\n## Installation\n\n1. Make sure you have Rust and Cargo installed. If not, install from [rustup.rs](https://rustup.rs/)\n2. Clone the repository:\n```bash\ngit clone [repository-url]\ncd dummy-data-rust\n```\n\n3. Build the project:\n```bash\ncargo build --release\n```\n\n## Usage\n\nThe project provides two binary targets:\n- `transaction-generator-id`: Generates data with auto-incrementing integer IDs\n- `transaction-generator-uuid`: Generates data with UUID identifiers\n\n### Command Line Options\n\n| Option | Short | Long | Default | Description |\n|--------|-------|------|---------|-------------|\n| Users | -u | --users | 100 | Number of users to generate |\n| Transactions | -t | --transactions | 1000 | Number of transactions to generate |\n| Providers | -p | --providers | 10 | Number of payment providers to generate |\n| Output Directory | -o | --output-dir | \"output\" | Directory where files will be saved |\n| Format | -f | --format | \"json\" | Output format (\"json\" or \"csv\") |\n| Skewed | -s | --skewed | false | Enable skewed transaction distribution |\n| User Start ID | | --user-start-id | 1 | Starting ID for users |\n| Address Start ID | | --address-start-id | 1 | Starting ID for addresses |\n| Provider Start ID | | --provider-start-id | 1 | Starting ID for providers |\n| Transaction Start ID | | --transaction-start-id | 1 | Starting ID for transactions |\n\n### Examples\n\n#### Basic Usage with Integer IDs\n\n1. Generate data with default settings:\n```bash\ncargo run --bin transaction-generator-id\n```\n\n2. Generate 1000 transactions with IDs starting from 1000:\n```bash\ncargo run --bin transaction-generator-id -- --transaction-start-id 1000 -t 1000\n```\n\n3. Generate data with custom start IDs for all entities:\n```bash\ncargo run --bin transaction-generator-id -- \\\n    --user-start-id 100 \\\n    --address-start-id 100 \\\n    --provider-start-id 100 \\\n    --transaction-start-id 1000 \\\n    -t 1000 \\\n    -u 50 \\\n    -p 5\n```\n\n4. Generate CSV output with custom ID ranges:\n```bash\ncargo run --bin transaction-generator-id -- \\\n    --user-start-id 1000 \\\n    --transaction-start-id 5000 \\\n    -f csv \\\n    -t 2000\n```\n\n5. Generate skewed transaction data:\n```bash\ncargo run --bin transaction-generator-id -- \\\n    -u 1000 \\\n    -t 10000 \\\n    -s\n```\n\n#### Using UUID Generation\n\n1. Generate data with UUIDs:\n```bash\ncargo run --bin transaction-generator-uuid\n```\n\n2. Generate large UUID dataset in CSV format:\n```bash\ncargo run --bin transaction-generator-uuid -- \\\n    -u 1000 \\\n    -t 10000 \\\n    -p 15 \\\n    -f csv\n```\n\n### Output Examples\n\n#### Users (users.json/users.csv)\n```json\n{\n    \"id\": 1,\n    \"name\": \"John Doe\",\n    \"email\": \"john.doe@example.com\",\n    \"phone\": \"+1-555-123-4567\"\n}\n```\n\n#### Addresses (addresses.json/addresses.csv)\n```json\n{\n    \"id\": 1,\n    \"user_id\": 1,\n    \"street\": \"123 Main St\",\n    \"city\": \"Springfield\",\n    \"state\": \"IL\",\n    \"country\": \"United States\",\n    \"postal_code\": \"62701\"\n}\n```\n\n#### Payment Providers (providers.json/providers.csv)\n```json\n{\n    \"id\": 1,\n    \"name\": \"Visa\"\n}\n```\n\n#### Transactions (transactions.json/transactions.csv)\n```json\n{\n    \"id\": 1,\n    \"user_id\": 1,\n    \"provider_id\": 1,\n    \"amount\": 123.45,\n    \"timestamp\": \"2024-12-12T10:30:00Z\"\n}\n```\n\n## Additional Features\n\n### Skewed Distribution\nWhen using the `-s` or `--skewed` flag, the transaction generation will follow a more realistic pattern where some users generate more transactions than others. This is useful for testing scenarios that require more realistic data patterns.\n\n### Format Options\n- JSON output: Records are written as newline-delimited JSON\n- CSV output: Data is properly escaped and formatted according to CSV standards\n\n### Progress Tracking\nThe tool provides real-time progress bars showing:\n- Generation progress for each entity type\n- Elapsed time\n- Completion percentage\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvesko-vujovic%2Fdummy-data-rust","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvesko-vujovic%2Fdummy-data-rust","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvesko-vujovic%2Fdummy-data-rust/lists"}