{"id":3717406,"name":"github.com/tmobile/parallelizer","ecosystem":"go","description":"Package parallelizer is a library for enabling the addition of\ncontrolled parallelization utilizing a pool of worker goroutines in\na simple manner.  This is not intended as an external job queue,\nwhere outside programs may submit jobs, although it could easily be\nused to implement such a tool.\n\nThe parallelizer package provides a Runner interface, which is for\nclient applications to implement.  Instances of the Runner\ninterface may then be passed to the constructor functions\nNewSynchronousWorker or NewGoWorker, which construct objects\nconforming to the Worker interface.  Data items may then be passed\nto the Worker instances via the Worker.Call method, and the\nprocessing completed and the final result obtained by calling\nWorker.Wait.\n\nA Runner implementation must provide a Runner.Run method, which\nwill actually process the data in a goroutine and return a result;\nthe result is then passed to the Runner.Integrate method, which is\nrun synchronously with other Runner.Integrate calls, and which can\nsubmit additional data items for processing.  Once all data is\nprocessed, and the client code has called Worker.Wait, the Worker\nwill call the Runner.Result method to obtain the result.  The\nRunner.Result method will be called exactly once; the returned\nvalue is cached in the Worker to be returned by future calls to\nWorker.Wait.  The Worker.Call method may not be called again after\nWorker.Wait has been called.\n\nThe parallelizer package also provides a Doer interface, which is\nfor client applications to implement.  Instances of the Doer\ninterface may then be passed to the constructor function\nNewSerializer, which constructs objects conforming to the\nSerializer interface.  Data items may then be passed to the\nSerializer objects to be executed via Doer.Do in a synchronous\nmanner without necessarily blocking the calling goroutine.\n\nA Doer implementation must provide a Doer.Do method, which will\nactually process the data in a separate goroutine; each call will\nbe executed synchronously, so thread-safety in Doer.Do is not a\nconcern.  When the code using the wrapping Serializer is done, it\nwill call Serializer.Wait, which will call the Doer.Finish method\nand return its result to the caller.  Note that none of the\nSerializer.Call methods may be called again after calling\nSerializer.Wait.","homepage":"https://github.com/tmobile/parallelizer","licenses":"Apache-2.0","normalized_licenses":["Apache-2.0"],"repository_url":"https://github.com/tmobile/parallelizer","keywords_array":[],"namespace":"github.com/tmobile","versions_count":3,"first_release_published_at":"2020-06-15T20:04:29.000Z","latest_release_published_at":"2021-03-26T16:11:49.000Z","latest_release_number":"v0.3.4","last_synced_at":"2026-03-19T06:32:38.242Z","created_at":"2022-04-11T13:05:31.623Z","updated_at":"2026-03-19T06:32:38.242Z","registry_url":"https://pkg.go.dev/github.com/tmobile/parallelizer","install_command":"go get github.com/tmobile/parallelizer","documentation_url":"https://pkg.go.dev/github.com/tmobile/parallelizer#section-documentation","metadata":{},"repo_metadata":{"uuid":"271871754","full_name":"tmobile/parallelizer","owner":"tmobile","description":"A go library for building work pools.","archived":false,"fork":false,"pushed_at":"2021-03-26T16:15:47.000Z","size":88,"stargazers_count":4,"open_issues_count":1,"forks_count":1,"subscribers_count":9,"default_branch":"master","last_synced_at":"2023-03-12T08:53:43.367Z","etag":null,"topics":["go","golang","golang-library"],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"logo_url":null,"metadata":{"files":{"readme":"README.rst","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":"2020-06-12T19:07:32.000Z","updated_at":"2022-02-05T21:40:25.000Z","dependencies_parsed_at":"2022-09-26T18:22:10.196Z","dependency_job_id":null,"html_url":"https://github.com/tmobile/parallelizer","commit_stats":null,"repository_url":"http://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tmobile%2Fparallelizer","tags_url":"http://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tmobile%2Fparallelizer/tags","manifests_url":"http://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tmobile%2Fparallelizer/manifests","owner_url":"http://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tmobile","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":108921946,"host_url":"http://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"http://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"http://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names"}},"repo_metadata_updated_at":"2023-03-21T18:59:37.289Z","dependent_packages_count":0,"downloads":null,"downloads_period":null,"dependent_repos_count":0,"rankings":{"downloads":null,"dependent_repos_count":9.345852080216646,"dependent_packages_count":6.999148183520997,"stargazers_count":6.860208947552122,"forks_count":7.012503408949347,"average":7.554428155059778},"purl":"pkg:golang/github.com/tmobile/parallelizer","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/go/github.com/tmobile/parallelizer","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/go/github.com/tmobile/parallelizer","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/go/github.com/tmobile/parallelizer/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2023-05-18T02:46:36.863Z","issues_count":1,"pull_requests_count":5,"avg_time_to_close_issue":null,"avg_time_to_close_pull_request":138177.8,"issues_closed_count":0,"pull_requests_closed_count":5,"pull_request_authors_count":3,"issue_authors_count":1,"avg_comments_per_issue":0.0,"avg_comments_per_pull_request":0.2,"merged_pull_requests_count":5,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":0,"past_year_pull_requests_count":0,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":0,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Ftmobile%2Fparallelizer/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Ftmobile%2Fparallelizer/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Ftmobile%2Fparallelizer/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Ftmobile%2Fparallelizer/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2Ftmobile%2Fparallelizer/codemeta","maintainers":[]}