{"id":48230186,"url":"https://github.com/solaoi/broly","last_synced_at":"2026-04-04T19:32:44.277Z","repository":{"id":47345673,"uuid":"514502800","full_name":"solaoi/broly","owner":"solaoi","description":"This is a high performance stub server.","archived":false,"fork":false,"pushed_at":"2023-07-17T08:40:41.000Z","size":25,"stargazers_count":13,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-05-01T17:24:35.879Z","etag":null,"topics":["broly","docker","dummy","dummy-api","dummy-server","http","json","load-testing","mock","mock-api","mock-server","mocking","rest","stub","stub-api","stub-server","stubbing","xml"],"latest_commit_sha":null,"homepage":"","language":"Nim","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/solaoi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null}},"created_at":"2022-07-16T06:54:06.000Z","updated_at":"2023-12-28T00:40:35.000Z","dependencies_parsed_at":"2023-01-28T06:01:11.844Z","dependency_job_id":null,"html_url":"https://github.com/solaoi/broly","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/solaoi/broly","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solaoi%2Fbroly","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solaoi%2Fbroly/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solaoi%2Fbroly/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solaoi%2Fbroly/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/solaoi","download_url":"https://codeload.github.com/solaoi/broly/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solaoi%2Fbroly/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31410830,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T19:29:44.979Z","status":"ssl_error","status_checked_at":"2026-04-04T19:29:11.535Z","response_time":60,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6: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":["broly","docker","dummy","dummy-api","dummy-server","http","json","load-testing","mock","mock-api","mock-server","mocking","rest","stub","stub-api","stub-server","stubbing","xml"],"created_at":"2026-04-04T19:32:43.206Z","updated_at":"2026-04-04T19:32:44.260Z","avatar_url":"https://github.com/solaoi.png","language":"Nim","readme":"# Broly\n\n[![license](https://img.shields.io/github/license/solaoi/broly)](https://github.com/solaoi/broly/blob/main/LICENSE)\n[![GitHub release (latest by date)](https://img.shields.io/github/v/release/solaoi/broly)](https://github.com/solaoi/broly/releases)\n[![GitHub Sponsors](https://img.shields.io/github/sponsors/solaoi?color=db61a2)](https://github.com/sponsors/solaoi)\n\nThis is a high performance stub server.\n\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://github.com/solaoi/broly\"\u003e\n    \u003cimg alt=\"broly\" src=\"https://user-images.githubusercontent.com/46414076/180388418-fa1beef3-251e-4803-8342-ab22867c63c2.png\"\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n## Usage\n\n```sh\nbroly target.json -p 9999\n```\n\nstub settings (JSON Format) is below.   \nsee a sample [here](https://raw.githubusercontent.com/solaoi/broly/main/target.json).\n\n| Field       | Type                    | Required | Default          | Sample                  |\n| ----------- | ----------------------- | -------- | ---------------- | ----------------------- |\n| - (parent)  | JSONArray or JSONObject | True     | -                | -                       |\n| path        | string                  | True     | -                | \"/hello\"                |\n| method      | string                  | True     | -                | \"GET\"                   |\n| contentType | string                  | False    | application/json | \"application/json\"      |\n| statusCode  | string                  | True     | -                | \"200\"                   |\n| response    | string                  | True     | -                | \"{\\\"name\\\": \\\"hello\\\"}\" |\n| sleep       | number                  | False    | 0                | 1000 (milliseconds)     |\n\nOption is below.\n\n| Option    | Description                        |\n| --------- | ---------------------------------- |\n| -p,--port | specify the port you want to serve |\n\n## Install\n\n### 1. Mac\n\n```\n# Install\nbrew install solaoi/tap/broly\n# Update\nbrew upgrade broly\n```\n\n### 2. BinaryRelease\n\n```sh\n# Install with wget or curl\n## set the latest version on releases.\nVERSION=v1.0.0\n## set the OS you use. (linux or macos)\nOS=linux\n## case you use wget\nwget https://github.com/solaoi/broly/releases/download/$VERSION/broly_${OS}.tar.gz\n## case you use curl\ncurl -LO https://github.com/solaoi/broly/releases/download/$VERSION/broly_${OS}.tar.gz\n## extract\ntar xvf ./broly_${OS}.tar.gz\n## move it to a location in your $PATH, such as /usr/local/bin.\nmv ./broly /usr/local/bin/\n```\n\n### 3. Docker\n\n#### RunOnly\n\n```sh\n# Specify the port you want to provide\nHOST_PORT=80\n# Specify the filename you want to serve\nSTUB_JSON=filename.json\n\n# Run Container\ndocker run --init \\\n-p $HOST_PORT:8080 \\\n--mount type=bind,src=`pwd`/$STUB_JSON,dst=/target.json \\\nghcr.io/solaoi/broly:latest\n```\n\n#### Local Build \u0026 Run\n\n```sh\n# Download this repo\ngit clone https://github.com/solaoi/broly.git\ncd broly\n\n# Specify the port you want to provide\nHOST_PORT=80\n\n# Edit stubs for serving\nvi target.json\n\n# Build DockerImage\ndocker build -t broly .\n\n# Run Container\ndocker run --init \\\n-p $HOST_PORT:8080 \\\n-t broly\n```\n\n### 4. Nimble\n\n```sh\n# Install \u0026 Update\nnimble install broly\n```\n\n## Benchmark\n\n- Tool: [Vegeta](https://github.com/tsenart/vegeta)\n- Command:   \n```echo 'GET http://localhost:9999/hello' | vegeta attack -duration=60s | vegeta report```\n- Environment: on DockerContainer\n\n### Broly\n\n```\nRequests      [total, rate, throughput]         3000, 50.02, 50.01\nDuration      [total, attack, wait]             59.985s, 59.982s, 3.197ms\nLatencies     [min, mean, 50, 90, 95, 99, max]  958.602µs, 2.906ms, 2.989ms, 3.334ms, 3.439ms, 3.682ms, 8.954ms\nBytes In      [total, mean]                     51000, 17.00\nBytes Out     [total, mean]                     0, 0.00\nSuccess       [ratio]                           100.00%\nStatus Codes  [code:count]                      200:3000  \nError Set:\n```\n\n### [WireMock](https://wiremock.org/)\n\ndemo is [here](https://github.com/solaoi/broly-wiremock-demo).\n\n```\nRequests      [total, rate, throughput]         3000, 50.02, 50.02\nDuration      [total, attack, wait]             59.98s, 59.976s, 3.466ms\nLatencies     [min, mean, 50, 90, 95, 99, max]  1.036ms, 6.185ms, 3.421ms, 4.056ms, 4.36ms, 34.511ms, 567.831ms\nBytes In      [total, mean]                     48000, 16.00\nBytes Out     [total, mean]                     0, 0.00\nSuccess       [ratio]                           100.00%\nStatus Codes  [code:count]                      200:3000  \nError Set:\n```\n\n## Affinity\n\nBroly's JSON Format is compatible with [co-metub](https://github.com/solaoi/co-metub).\n\n[co-metub](https://github.com/solaoi/co-metub) is a GUI tool to manage stubs and export stubs in JSON Format.\n\nIf you manage stubs with GUI, you should use [co-metub](https://github.com/solaoi/co-metub).\n\nBut if you switch some stubs or attack strongly a stub server, you should use Broly.\n","funding_links":["https://github.com/sponsors/solaoi"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsolaoi%2Fbroly","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsolaoi%2Fbroly","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsolaoi%2Fbroly/lists"}