{"id":19010170,"url":"https://github.com/nitishm/vegeta-server","last_synced_at":"2025-09-10T05:11:50.769Z","repository":{"id":50368124,"uuid":"164144949","full_name":"nitishm/vegeta-server","owner":"nitishm","description":"A RESTful API server for vegeta, a load testing tool written in Go.","archived":false,"fork":false,"pushed_at":"2020-09-09T13:03:46.000Z","size":280,"stargazers_count":65,"open_issues_count":4,"forks_count":17,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-04-22T22:54:09.256Z","etag":null,"topics":["go","load-testing","rest-api","vegeta","vegeta-server"],"latest_commit_sha":null,"homepage":"","language":"Go","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/nitishm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-01-04T19:07:08.000Z","updated_at":"2025-02-24T11:03:44.000Z","dependencies_parsed_at":"2022-07-31T14:48:56.610Z","dependency_job_id":null,"html_url":"https://github.com/nitishm/vegeta-server","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/nitishm/vegeta-server","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nitishm%2Fvegeta-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nitishm%2Fvegeta-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nitishm%2Fvegeta-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nitishm%2Fvegeta-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nitishm","download_url":"https://codeload.github.com/nitishm/vegeta-server/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nitishm%2Fvegeta-server/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274416240,"owners_count":25280920,"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-09-10T02:00:12.551Z","response_time":83,"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":["go","load-testing","rest-api","vegeta","vegeta-server"],"created_at":"2024-11-08T19:10:13.252Z","updated_at":"2025-09-10T05:11:50.691Z","avatar_url":"https://github.com/nitishm.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![GoDoc](https://godoc.org/github.com/shazow/ssh-chat?status.svg)](https://godoc.org/github.com/nitishm/vegeta-server) \n[![Go Report Card](https://goreportcard.com/badge/gojp/goreportcard)](https://goreportcard.com/report/nitishm/vegeta-server) \n[![Build Status](https://travis-ci.org/shazow/ssh-chat.svg?branch=master)](https://travis-ci.org/nitishm/vegeta-server) \n[![License](https://img.shields.io/badge/License-MIT-blue.svg)](https://github.com/nitishm/vegeta-server/blob/master/LICENSE) \n[![Coverage Status](https://coveralls.io/repos/github/nitishm/vegeta-server/badge.svg?branch=master)](https://coveralls.io/github/nitishm/vegeta-server?branch=master)\n\n# Vegeta Server - A RESTful load-testing service\n\nA RESTful API server for [vegeta](https://github.com/tsenart/vegeta), a load testing tool written in [Go](https://github.com/golang/go).\n\nVegeta is a versatile HTTP load testing tool built out of a need to drill HTTP services with a constant request rate. The vegeta library is written in Go, which makes it ideal to implement server in Go.  \n\nThe REST API model enables users to, asynchronously, submit multiple `attack`s targeting the same (or varied) endpoints, lookup pending or historical `report`s and update/cancel/re-submit `attack`s, using a simple RESTful API.\n\n## Getting Started\n\n### Installing\n\n```\nmake all\n```\n\n\u003e NOTE: `make all` resolves all the dependencies, formats the code using `gofmt`, validates and lints using `golangci-lint` and `golint`, builds the `vegeta-server` binary and drops it in the `/bin` directory and finally runs tests using `go test`.\n\n### Quick Start\n\nStart the server using the `vegeta-server` binary generated after the previous step.\n\n```\nUsage: main [\u003cflags\u003e]\n\nFlags:\n      --help            Show context-sensitive help (also try --help-long and --help-man).\n      --ip=\"0.0.0.0\"  Server IP Address.\n      --port=\"80\"     Server Port.\n  -v, --version         Version Info\n      --debug           Enabled Debug\n```\n\n#### Example\n\n*Serve `HTTP` traffic at `0.0.0.0:80/api/v1`*\n```\n./bin/vegeta-server --ip=0.0.0.0 --port=80 --debug\n```\n\n\u003e Try it out using `make run`\n\u003e ```\n\u003e make run\n\u003e \n\u003e INFO[0000] creating new dispatcher                       component=dispatcher\n\u003e INFO[0000] starting dispatcher                           component=dispatcher\n\u003e INFO[0000] listening                                     component=server ip=0.0.0.0 port=80\n\u003e ```\n\n### Using Docker\n\n*Build the docker image using local Dockerfile*\n\n```\ndocker build .\n```\n\n*Run the docker container*\n\n```\ndocker run -d -p 8000:80 --name vegeta {container id}\n```\n\n*You can also build and run a docker container using make*\n\n```\nmake container_run\n```\n\u003e NOTE: `make container` and `make container_clean` can be used to build the Dockerfile and delete the container and image.\n\n### Running tests\n\n```\nmake test\n```\n\n## Documentation \n\n- [REST API Usage](https://github.com/nitishm/vegeta-server/tree/master/docs/usage.md)\n\n## Contributing\n\nLink to [CONTRIBUTING.md](https://github.com/nitishm/vegeta-server/blob/master/CONTRIBUTING.md)\n\n### Project Structure\n\n- `/`: Extraneous setup and configuration files. No go code exists at this level.\n- `/cmd/server`: Comprises of `package main` serving as an entry point to the code.\n- `/models`: Includes the model definitions used by the DB and the API endpoints.\n    - `/db.go`: Provides the storage interface, which is implemented by the configured database.\n- `/internal`: Internal only packages used by the server to run attacks and serve reports.\n    - `/dispatcher`: Defines and implements the dispatcher interface, with the primary responsibility to carry out concurrent attacks.\n    - `/reporter`: Defines and implements the reporter interface, with the primary responsibility to generate reports from previously completed attacks, in supported formats (JSON/Text/Binary).\n    - `/endpoints`: Responsible for defining and registering the REST API endpoint handlers.\n- `/pkg/vegeta`: [Vegeta library](https://github.com/tsenart/vegeta/tree/master/lib)  specific, wrapper methods and definitions. (*Keep these isolated from the internals of the server, to support more load-testing tools/libraries in the future.*)\n- `/scripts`: Helper installation scripts.\n\n## Roadmap\n\nLink to [roadmap](https://github.com/nitishm/vegeta-server/projects/)\n\n## License\n\nLink to [LICENSE](https://github.com/nitishm/vegeta-server/blob/master/LICENSE)\n\n## Support\n\nContact Author at nitish.malhotra@gmail.com\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnitishm%2Fvegeta-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnitishm%2Fvegeta-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnitishm%2Fvegeta-server/lists"}