{"id":36469241,"url":"https://github.com/nathanaelle/gearman","last_synced_at":"2026-01-12T00:31:29.034Z","repository":{"id":57512402,"uuid":"62321728","full_name":"nathanaelle/gearman","owner":"nathanaelle","description":"Gearman Protocol for Golang","archived":false,"fork":false,"pushed_at":"2020-02-14T14:39:08.000Z","size":116,"stargazers_count":4,"open_issues_count":1,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-06-20T12:03:25.250Z","etag":null,"topics":["gearman","go","golang","library"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nathanaelle.png","metadata":{"files":{"readme":"ReadMe.markdown","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-06-30T15:26:56.000Z","updated_at":"2022-04-28T06:29:38.000Z","dependencies_parsed_at":"2022-09-26T17:51:39.769Z","dependency_job_id":null,"html_url":"https://github.com/nathanaelle/gearman","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/nathanaelle/gearman","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nathanaelle%2Fgearman","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nathanaelle%2Fgearman/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nathanaelle%2Fgearman/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nathanaelle%2Fgearman/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nathanaelle","download_url":"https://codeload.github.com/nathanaelle/gearman/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nathanaelle%2Fgearman/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28329796,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-12T00:13:06.322Z","status":"ssl_error","status_checked_at":"2026-01-12T00:04:50.725Z","response_time":60,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":["gearman","go","golang","library"],"created_at":"2026-01-12T00:31:28.429Z","updated_at":"2026-01-12T00:31:29.029Z","avatar_url":"https://github.com/nathanaelle.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Gearman\n\n[![License](http://img.shields.io/badge/license-Simplified_BSD-blue.svg?style=flat)](LICENSE.txt) [![Go Doc](http://img.shields.io/badge/godoc-gearman-blue.svg?style=flat)](http://godoc.org/github.com/nathanaelle/gearman) [![Build Status](https://travis-ci.org/nathanaelle/gearman.svg?branch=master)](https://travis-ci.org/nathanaelle/gearman) [![Go Report Card](https://goreportcard.com/badge/github.com/nathanaelle/gearman)](https://goreportcard.com/report/github.com/nathanaelle/gearman)\n\n## Examples\n\n### Worker Example\n\n```\nctx, cancel := context.WithCancel(context.Background())\n\nw := gearman.NewWorker(ctx, nil)\nw.AddServers( gearman.NetConn(\"tcp\",\"localhost:4730\") )\n\nw.AddHandler(\"reverse\", gearman.JobHandler(func(payload io.Reader,reply io.Writer) (error){\n        buff\t:= make([]byte,1\u003c\u003c16)\n        s,_\t:= payload.Read(buff)\n        buff\t= buff[0:s]\n\n        for i:=len(buff); i\u003e0; i-- {\n                reply.Write([]byte{ buff[i-1] })\n        }\n\n        return nil\n} ))\n\n\u003c-ctx.Done()\n```\n\n### Client Example\n\n```\nctx, cancel := context.WithCancel(context.Background())\ndefer cancel()\n\nw := gearman.SingleServerClient(ctx, nil)\nw.AddServers( gearman.NetConn(\"tcp\",\"localhost:4730\") )\n\nbytes_val, err_if_any := cli.Submit( NewTask(\"some task\", []byte(\"some byte encoded payload\")) ).Value()\n```\n\n## Features\n\n  * Worker Support\n  * Client Support\n  * Access To Raw Packets\n  * Async Client Task with promise\n\n## Protocol Support\n\n### Protocol Plumbing\n\n  The protocol implemented is now  https://github.com/gearman/gearmand/blob/master/PROTOCOL\n\n  * Binary only protocol\n  * Access Raw Packets\n\n### Protocol Porcelain\n\n  * PacketFactory for parsing socket\n  * Multi server Worker\n  * Single server Client\n  * Round Robin Client\n\n## License\n\n2-Clause BSD\n\n## Benchmarks\n\n### PacketFactory on LoopReader\n\n```\nBenchmarkPacketFactoryPkt0size-4    \t30000000\t        43.8 ns/op\t      20 B/op\t       1 allocs/op\nBenchmarkPacketFactoryPkt1len-4     \t30000000\t        53.1 ns/op\t      33 B/op\t       1 allocs/op\nBenchmarkPacketFactoryPktcommon-4   \t10000000\t       145   ns/op\t     128 B/op\t       2 allocs/op\n```\n\n### Unmarshal\n\n```\nBenchmarkUnmarshalPkt0size-4        \t100000000\t        22.7 ns/op\t       8 B/op\t       1 allocs/op\nBenchmarkUnmarshalPkt1len-4         \t30000000\t        45.2 ns/op\t      48 B/op\t       1 allocs/op\nBenchmarkUnmarshalPktcommon-4       \t20000000\t       112   ns/op\t      96 B/op\t       2 allocs/op\n```\n\n### Marshal\n\n```\nBenchmarkMarshalPkt0size-4          \t300000000\t         4.25 ns/op\t       0 B/op\t       0 allocs/op\nBenchmarkMarshalPkt1len-4           \t200000000\t         9.70 ns/op\t       0 B/op\t       0 allocs/op\nBenchmarkMarshalPktcommon-4         \t200000000\t         9.81 ns/op\t       0 B/op\t       0 allocs/op\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnathanaelle%2Fgearman","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnathanaelle%2Fgearman","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnathanaelle%2Fgearman/lists"}