{"id":21972797,"url":"https://github.com/agustinsrg/parallel-request-controller","last_synced_at":"2025-04-28T13:26:11.521Z","repository":{"id":251929078,"uuid":"837613447","full_name":"AgustinSRG/parallel-request-controller","owner":"AgustinSRG","description":"Backend component to control parallel requests, allowing for limits to be imposed in a multi-server environment.","archived":false,"fork":false,"pushed_at":"2024-10-16T20:28:51.000Z","size":166,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-11-21T01:48:07.533Z","etag":null,"topics":["backend","go","golang","limit","limiter","parallel","requests","websocket"],"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/AgustinSRG.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":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-03T13:44:33.000Z","updated_at":"2024-10-16T20:28:16.000Z","dependencies_parsed_at":"2024-08-06T16:29:32.768Z","dependency_job_id":"0e181750-07c3-4a64-9fa4-5b13bd7c9840","html_url":"https://github.com/AgustinSRG/parallel-request-controller","commit_stats":null,"previous_names":["agustinsrg/parallel-request-controller"],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AgustinSRG%2Fparallel-request-controller","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AgustinSRG%2Fparallel-request-controller/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AgustinSRG%2Fparallel-request-controller/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AgustinSRG%2Fparallel-request-controller/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AgustinSRG","download_url":"https://codeload.github.com/AgustinSRG/parallel-request-controller/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":227153261,"owners_count":17738599,"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":["backend","go","golang","limit","limiter","parallel","requests","websocket"],"created_at":"2024-11-29T15:21:17.772Z","updated_at":"2024-11-29T15:21:18.480Z","avatar_url":"https://github.com/AgustinSRG.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Parallel Request Controller\n\nSimple backend component to control parallel requests.\n\nThe main use case for this component is to impose limits on parallel requests when using multiple web servers for horizontal scaling.\n\n## Compilation\n\nIn order to compile the project, navigate to the [server](./server/) folder and run the [Golang compiler](https://go.dev/doc/install):\n\n```\ngo build .\n```\n\nThe build command will create a binary in the current directory, called `server`, or `server.exe` if you are using Windows.\n\n## Docker Image\n\nYou can find the docker image for this project available in Docker Hub: [https://hub.docker.com/r/asanrom/parallel-request-controller](https://hub.docker.com/r/asanrom/parallel-request-controller)\n\nTo pull it type:\n\n```\ndocker pull asanrom/parallel-request-controller\n```\n\n## Server configuration\n\nYou can configure the server using environment variables. You can set up a `.env` file in the current working directory in order to set them in an easy way.\n\nHere is a list with all the available configuration variables for the server.\n\n### General\n\n| Variable       | Description                                                                   |\n| -------------- | ----------------------------------------------------------------------------- |\n| `PORT`         | The listening port for the server. By default: `8080`                         |\n| `BIND_ADDRESS` | Bind address for the server. By default it binds to all network interfaces.   |\n| `AUTH_TOKEN`   | Authentication token the clients must send in order to connect to the server. |\n\n### TLS\n\n| Variable          | Description                                                                                                           |\n| ----------------- | --------------------------------------------------------------------------------------------------------------------- |\n| `TLS_ENABLED`     | Can be `YES` or `NO`. If `YES`, TLS will be enabled for the server, and client must connect with the `wss:` protocol. |\n| `TLS_CERTIFICATE` | Path to the certificate file to load (PEM format).                                                                    |\n| `TLS_PRIVATE_KEY` | Path to the private key file to load (PEM format).                                                                    |\n\n### Logs\n\n| Variable    | Description                                                                                             |\n| ----------- | ------------------------------------------------------------------------------------------------------- |\n| `LOG_INFO`  | Can be `YES` or `NO`. If `YES`, it will log information messages to the standard output. Default: `YES` |\n| `LOG_DEBUG` | Bind address for the server. By default it binds to all network interfaces.                             |\n\n## Clients\n\n- [Go client](./client/)\n- [Javascript client](./client-js/)\n\n## Documentation\n\n- [Protocol](./PROTOCOL.md)\n\n## License\n\nThis project is under the [MIT License](./LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagustinsrg%2Fparallel-request-controller","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fagustinsrg%2Fparallel-request-controller","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagustinsrg%2Fparallel-request-controller/lists"}