{"id":22747521,"url":"https://github.com/resurfaceio/simulator","last_synced_at":"2025-03-30T05:41:20.725Z","repository":{"id":146888433,"uuid":"588030534","full_name":"resurfaceio/simulator","owner":"resurfaceio","description":"Simulate API calls and import into Resurface database","archived":false,"fork":false,"pushed_at":"2024-11-14T16:19:59.000Z","size":137,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"v3.6.x","last_synced_at":"2025-02-05T07:49:16.878Z","etag":null,"topics":["java","ndjson"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/resurfaceio.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","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":"2023-01-12T06:45:15.000Z","updated_at":"2024-10-09T19:42:42.000Z","dependencies_parsed_at":"2024-02-18T06:26:41.960Z","dependency_job_id":"f3f30900-8328-4bf9-8d0a-79b1cea9e255","html_url":"https://github.com/resurfaceio/simulator","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/resurfaceio%2Fsimulator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/resurfaceio%2Fsimulator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/resurfaceio%2Fsimulator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/resurfaceio%2Fsimulator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/resurfaceio","download_url":"https://codeload.github.com/resurfaceio/simulator/tar.gz/refs/heads/v3.6.x","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246281216,"owners_count":20752207,"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","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":["java","ndjson"],"created_at":"2024-12-11T03:16:13.560Z","updated_at":"2025-03-30T05:41:20.701Z","avatar_url":"https://github.com/resurfaceio.png","language":"Java","readme":"# resurfaceio-simulator\nSimulate API calls and import into Resurface database\n\nThis open source Java utility generates simulated API calls (in [NDJSON format](https://resurface.io/json.html))\nand sends these to a remote Resurface database. This command-line utility works with Resurface databases on Kubernetes or Docker.\n\n[![CodeFactor](https://www.codefactor.io/repository/github/resurfaceio/simulator/badge)](https://www.codefactor.io/repository/github/resurfaceio/simulator)\n[![Contributing](https://img.shields.io/badge/contributions-welcome-green.svg)](https://github.com/resurfaceio/simulator/blob/v3.6.x/CONTRIBUTING.md)\n[![License](https://img.shields.io/github/license/resurfaceio/simulator)](https://github.com/resurfaceio/simulator/blob/v3.6.x/LICENSE)\n[![Hosted By: Cloudsmith](https://img.shields.io/badge/OSS%20hosting%20by-cloudsmith-blue?logo=cloudsmith\u0026style=flat-square)](https://cloudsmith.io/~resurfaceio/repos/public/packages/)\n\n## Usage\n\nDownload executable jar:\n```\nwget https://dl.cloudsmith.io/public/resurfaceio/public/maven/io/resurface/resurfaceio-simulator/3.6.5/resurfaceio-simulator-3.6.5.jar\n```\n\nRun with default dialect:\n```\njava -DWORKLOAD=Coinbroker -DHOST=localhost -DPORT=443 -DBATCH_SIZE=128 -DCLOCK_SKEW_DAYS=0 -DLIMIT_MESSAGES=0 -DLIMIT_MILLIS=0 -DSLEEP_PER_BATCH=0 -Xmx512M -jar resurfaceio-simulator-3.6.5.jar\n```\n\nRun with API Connect dialect:\n```\njava -DDIALECT=ibm -DWORKLOAD=RestSmall2 -DHOST=localhost -DPORT=443 -DBATCH_SIZE=128 -DCLOCK_SKEW_DAYS=0 -DLIMIT_MESSAGES=0 -DLIMIT_MILLIS=0 -DSLEEP_PER_BATCH=0 -Xmx512M -jar resurfaceio-simulator-3.6.5.jar\n```\n\n## Parameters\n\n```\nWORKLOAD: workload implementation class\nHOST: machine name for remote database\nPORT: network port for remote database (80 or 443 for Kubernetes, 7701 for Docker)\n\nBATCH_SIZE: default is '128', messages sent in a single POST\nCLOCK_SKEW_DAYS: default is '0' (none), rewind virtual clock \u0026 advance faster\nDIALECT: default is 'default' (Resurface format), set to 'ibm' for API Connect\nLIMIT_MESSAGES: default is '0' (unlimited), quit after this many messages\nLIMIT_MILLIS: default is '0' (unlimited), quit after this many milliseconds\nSLEEP_PER_BATCH: default is '0' (none), pause in millis between batches\nURL: override HOST and PORT with custom URL for remote database\n```\n\n## Available Workloads\n\n* **Minimum** - empty calls with method, url and response code only (12 byte/call)\n* **Coinbroker** (default) - REST and GraphQL calls with injected failures and attacks (500 byte/call average)\n* **RestSmall3** - REST calls with randomized url path, headers, and JSON bodies (2 KB/call average)\n* **RestLarge3** - REST calls with randomized url path, headers, and JSON bodies (8 KB/call average)\n* **ScrapingStuffing** - REST calls including scraping and stuffing attacks (X KB/call average)\n\n## Dependencies\n\n* Java 17\n* [datafaker-net/datafaker](https://github.com/datafaker-net/datafaker)\n* [DiUS/java-faker](https://github.com/DiUS/java-faker)\n* [resurfaceio/ndjson](https://github.com/resurfaceio/ndjson)\n\n## Installing with Maven\n\n⚠️ We publish our official binaries on [CloudSmith](https://cloudsmith.io/~resurfaceio/repos/public/packages/) rather than Maven Central,\nbecause CloudSmith is awesome and **free** for open-source projects.\n\nIf you want to call this utility from your own Java application, add these sections to `pom.xml` to install:\n\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003eio.resurface\u003c/groupId\u003e\n    \u003cartifactId\u003eresurfaceio-simulator\u003c/artifactId\u003e\n    \u003cversion\u003e3.6.5\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n```xml\n\u003crepositories\u003e\n    \u003crepository\u003e\n        \u003cid\u003eresurfaceio-public\u003c/id\u003e\n        \u003curl\u003ehttps://dl.cloudsmith.io/public/resurfaceio/public/maven/\u003c/url\u003e\n        \u003creleases\u003e\n            \u003cenabled\u003etrue\u003c/enabled\u003e\n            \u003cupdatePolicy\u003ealways\u003c/updatePolicy\u003e\n        \u003c/releases\u003e\n    \u003c/repository\u003e\n\u003c/repositories\u003e\n```\n\n---\n\u003csmall\u003e\u0026copy; 2016-2024 \u003ca href=\"https://resurface.io\"\u003eGraylog, Inc.\u003c/a\u003e\u003c/small\u003e\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fresurfaceio%2Fsimulator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fresurfaceio%2Fsimulator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fresurfaceio%2Fsimulator/lists"}