{"id":37226994,"url":"https://github.com/aykhans/sarin","last_synced_at":"2026-04-01T23:53:42.256Z","repository":{"id":241437876,"uuid":"805841419","full_name":"aykhans/sarin","owner":"aykhans","description":"A high-performance HTTP load testing tool. Features dynamic request generation with 320+ template functions, proxy support, and configuration via CLI, YAML, ENV.","archived":false,"fork":false,"pushed_at":"2026-03-22T18:31:59.000Z","size":945,"stargazers_count":6,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-23T09:47:26.991Z","etag":null,"topics":["benchmarking","cli","go","load-testing"],"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/aykhans.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"buy_me_a_coffee":"aykhan"}},"created_at":"2024-05-25T16:02:42.000Z","updated_at":"2026-03-22T18:28:36.000Z","dependencies_parsed_at":"2024-08-07T13:29:46.483Z","dependency_job_id":"acb8439d-ab75-4fb0-a2b4-428592446a96","html_url":"https://github.com/aykhans/sarin","commit_stats":null,"previous_names":["aykhans/dodo","aykhans/sarin"],"tags_count":33,"template":false,"template_full_name":null,"purl":"pkg:github/aykhans/sarin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aykhans%2Fsarin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aykhans%2Fsarin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aykhans%2Fsarin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aykhans%2Fsarin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aykhans","download_url":"https://codeload.github.com/aykhans/sarin/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aykhans%2Fsarin/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31293130,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T21:15:39.731Z","status":"ssl_error","status_checked_at":"2026-04-01T21:15:34.046Z","response_time":53,"last_error":"SSL_read: 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":["benchmarking","cli","go","load-testing"],"created_at":"2026-01-15T03:17:54.595Z","updated_at":"2026-04-01T23:53:42.234Z","avatar_url":"https://github.com/aykhans.png","language":"Go","funding_links":["https://buymeacoffee.com/aykhan"],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n## Sarin is a high-performance HTTP load testing tool built with Go and fasthttp.\n\n[![Go Reference](https://pkg.go.dev/badge/go.aykhans.me/sarin.svg)](https://pkg.go.dev/go.aykhans.me/sarin)\n[![Go Report Card](https://goreportcard.com/badge/go.aykhans.me/sarin)](https://goreportcard.com/report/go.aykhans.me/sarin)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n\u003c/div\u003e\n\n![Demo](docs/static/demo.gif)\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#installation\"\u003eInstall\u003c/a\u003e •\n  \u003ca href=\"#quick-start\"\u003eQuick Start\u003c/a\u003e •\n  \u003ca href=\"docs/examples.md\"\u003eExamples\u003c/a\u003e •\n  \u003ca href=\"docs/configuration.md\"\u003eConfiguration\u003c/a\u003e •\n  \u003ca href=\"docs/templating.md\"\u003eTemplating\u003c/a\u003e\n\u003c/p\u003e\n\n## Overview\n\nSarin is designed for efficient HTTP load testing with minimal resource consumption. It prioritizes simplicity—features like templating add zero overhead when unused.\n\n| ✅ Supported                                               | ❌ Not Supported                |\n| ---------------------------------------------------------- | ------------------------------- |\n| High-performance with low memory footprint                 | Detailed response body analysis |\n| Long-running duration/count based tests                    | Extensive response statistics   |\n| Dynamic requests via 320+ template functions               | Web UI or complex TUI           |\n| Request scripting with Lua and JavaScript                  | Distributed load testing        |\n| Multiple proxy protocols\u003cbr\u003e(HTTP, HTTPS, SOCKS5, SOCKS5H) | HTTP/2, HTTP/3, WebSocket, gRPC |\n| Flexible config (CLI, ENV, YAML)                           | Plugins / extensions ecosystem  |\n\n## Installation\n\n### Docker (Recommended)\n\n```sh\ndocker pull aykhans/sarin:latest\n```\n\nWith a local config file:\n\n```sh\ndocker run --rm -it -v /path/to/config.yaml:/config.yaml aykhans/sarin -f /config.yaml\n```\n\nWith a remote config file:\n\n```sh\ndocker run --rm -it aykhans/sarin -f https://example.com/config.yaml\n```\n\n### Pre-built Binaries\n\nDownload the latest binaries from the [releases](https://github.com/aykhans/sarin/releases) page.\n\n### Building from Source\n\nRequires [Go 1.26+](https://golang.org/dl/).\n\n```sh\ngit clone https://github.com/aykhans/sarin.git \u0026\u0026 cd sarin\n\nCGO_ENABLED=0 go build \\\n    -ldflags \"-X 'go.aykhans.me/sarin/internal/version.Version=dev' \\\n    -X 'go.aykhans.me/sarin/internal/version.GitCommit=$(git rev-parse HEAD)' \\\n    -X 'go.aykhans.me/sarin/internal/version.BuildDate=$(date -u +%Y-%m-%dT%H:%M:%SZ)' \\\n    -X 'go.aykhans.me/sarin/internal/version.GoVersion=$(go version)' \\\n    -s -w\" \\\n    -o sarin ./cmd/cli/main.go\n```\n\n## Quick Start\n\nSend 10,000 GET requests with 50 concurrent connections and a random User-Agent for each request:\n\n```sh\nsarin -U http://example.com -r 10_000 -c 50 -H \"User-Agent: {{ fakeit_UserAgent }}\"\n```\n\nRun a 5-minute duration-based test:\n\n```sh\nsarin -U http://example.com -d 5m -c 100\n```\n\nUse a YAML config file:\n\n```sh\nsarin -f config.yaml\n```\n\nFor more usage examples, see the **[Examples Guide](docs/examples.md)**.\n\n## Configuration\n\nSarin supports environment variables, CLI flags, and YAML files. When the same option is specified in multiple sources, the following priority order applies:\n\n```\nCLI Flags (Highest) \u003e YAML \u003e Environment Variables (Lowest)\n```\n\nFor detailed documentation on all configuration options (URL, method, timeout, concurrency, headers, cookies, proxy, etc.), see the **[Configuration Guide](docs/configuration.md)**.\n\n## Templating\n\nSarin supports Go templates in URL paths, methods, bodies, headers, params, cookies, and values. Use the 320+ built-in functions to generate dynamic data for each request.\n\n**Example:**\n\n```sh\nsarin -U \"http://example.com/users/{{ fakeit_UUID }}\" -r 1000 -c 10 \\\n  -V \"REQUEST_ID={{ fakeit_UUID }}\" \\\n  -H \"X-Request-ID: {{ .Values.REQUEST_ID }}\" \\\n  -B '{\"request_id\": \"{{ .Values.REQUEST_ID }}\"}'\n```\n\nFor the complete templating guide and functions reference, see the **[Templating Guide](docs/templating.md)**.\n\n## License\n\nThis project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faykhans%2Fsarin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faykhans%2Fsarin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faykhans%2Fsarin/lists"}