{"id":37218671,"url":"https://github.com/akshaybharambe14/gowp","last_synced_at":"2026-01-15T01:11:45.350Z","repository":{"id":45921634,"uuid":"403086011","full_name":"akshaybharambe14/gowp","owner":"akshaybharambe14","description":"High performance, type safe, concurrency limiting worker pool package for golang!","archived":false,"fork":false,"pushed_at":"2021-11-28T08:02:24.000Z","size":412,"stargazers_count":4,"open_issues_count":4,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2023-07-27T21:53:58.206Z","etag":null,"topics":["concurrency","error-handling","go","golang","goroutine-pool","goroutines","pool","worker-pool"],"latest_commit_sha":null,"homepage":"https://pkg.go.dev/github.com/akshaybharambe14/gowp","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/akshaybharambe14.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}},"created_at":"2021-09-04T15:04:12.000Z","updated_at":"2023-03-04T09:56:31.000Z","dependencies_parsed_at":"2022-09-26T21:40:12.779Z","dependency_job_id":null,"html_url":"https://github.com/akshaybharambe14/gowp","commit_stats":null,"previous_names":[],"tags_count":0,"template":null,"template_full_name":null,"purl":"pkg:github/akshaybharambe14/gowp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akshaybharambe14%2Fgowp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akshaybharambe14%2Fgowp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akshaybharambe14%2Fgowp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akshaybharambe14%2Fgowp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/akshaybharambe14","download_url":"https://codeload.github.com/akshaybharambe14/gowp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akshaybharambe14%2Fgowp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28441018,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-15T00:55:22.719Z","status":"ssl_error","status_checked_at":"2026-01-15T00:55:20.945Z","response_time":107,"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":["concurrency","error-handling","go","golang","goroutine-pool","goroutines","pool","worker-pool"],"created_at":"2026-01-15T01:11:44.541Z","updated_at":"2026-01-15T01:11:45.336Z","avatar_url":"https://github.com/akshaybharambe14.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GOWP\n\n[![PkgGoDev](https://pkg.go.dev/badge/github.com/akshaybharambe14/gowp)](https://pkg.go.dev/github.com/akshaybharambe14/gowp)\n[![Build and Test Status](https://github.com/akshaybharambe14/gowp/workflows/Build%20and%20test/badge.svg)](https://github.com/akshaybharambe14/gowp/actions?query=workflow%3A%22Build+and+test%22)\n[![PkgGoDev](https://goreportcard.com/badge/github.com/akshaybharambe14/gowp)](https://goreportcard.com/report/github.com/akshaybharambe14/gowp)\n\nPackage gowp (Go Worker-Pool) provides concurrency limiting, error propagation, and Context cancellation for a group of workers/goroutines.\n\n## Features\n\n- Context cancellation, won't process new tasks if parent context gets cancelled.\n- Error propagation, will return the first error encountered.\n- Exit on error, if specified, it won't process further tasks if an error is encountered.\n- Concurrency limiting\n\n## Installation\n\n```bash\ngo get -u github.com/akshaybharambe14/gowp\n```\n\n## Why?\n\nGoroutines are cheap in terms of memory, but not free. If you want to achieve extreme performance, you need to limit the number of goroutines you use. Also, in real world applications, you need to take care of the failures. This package does that for you.\n\nThis package works best with short bursts of tasks. We have other packages that are meant for running huge number of tasks.\n\n### Why yet another worker pool implementation\n\nI wanted to build a perfect worker pool implementation with above specified features. We have other implementations, but I think they do a lot of work in background if used to execute fixed set of tasks. Gowp outperforms some of them ([see benchmarks](#Benchmarks)).\n\n## Benchmarks\n\nFor following benchmarks, a single operation means running 10 tasks over 4 workers.\nPackages compared (results are in same sequence as packages are listed):\n\n- github.com/akshaybharambe14/gowp\n- github.com/gammazero/workerpool\n- github.com/alitto/pond\n\n```bash\n$ go test -bench=. -benchmem github.com/akshaybharambe14/gowp/benchmarks\ngoos: windows\ngoarch: amd64\npkg: github.com/akshaybharambe14/gowp/benchmarks\ncpu: Intel(R) Core(TM) i5-4200M CPU @ 2.50GHz\nBenchmark_simple_gowp-4                    79420             13663 ns/op             704 B/op         13 allocs/op\nBenchmark_simple_workerpool-4              40402             29716 ns/op             952 B/op         17 allocs/op\nBenchmark_simple_pond-4                    57692             20689 ns/op             968 B/op         20 allocs/op\nPASS\nok      github.com/akshaybharambe14/gowp/benchmarks     4.323s\n```\n\n## Examples\n\nsee [package examples](https://pkg.go.dev/github.com/akshaybharambe14/gowp#pkg-examples)\n\n## Contact\n\n[Akshay Bharambe](https://twitter.com/akshaybharambe1)\n\n---\n\nIf this is not something you are looking for, you can check other similar packages on [go.libhunt.com](https://go.libhunt.com/categories/493-goroutines).\n\nDo let me know if you have any feedback. Leave a ⭐ if you like this work.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakshaybharambe14%2Fgowp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fakshaybharambe14%2Fgowp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakshaybharambe14%2Fgowp/lists"}