{"id":19956315,"url":"https://github.com/althk/ipmq","last_synced_at":"2025-07-20T05:34:01.257Z","repository":{"id":57705980,"uuid":"501378618","full_name":"althk/ipmq","owner":"althk","description":"An extremely simple thread-safe in-process messaging queue","archived":false,"fork":false,"pushed_at":"2022-06-15T17:31:21.000Z","size":3,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-03T00:31:56.630Z","etag":null,"topics":["golang-library","in-process","message-queue"],"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/althk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-06-08T19:07:50.000Z","updated_at":"2022-06-08T19:18:10.000Z","dependencies_parsed_at":"2022-08-24T12:50:36.491Z","dependency_job_id":null,"html_url":"https://github.com/althk/ipmq","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/althk/ipmq","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/althk%2Fipmq","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/althk%2Fipmq/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/althk%2Fipmq/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/althk%2Fipmq/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/althk","download_url":"https://codeload.github.com/althk/ipmq/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/althk%2Fipmq/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266071519,"owners_count":23871940,"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":["golang-library","in-process","message-queue"],"created_at":"2024-11-13T01:33:02.892Z","updated_at":"2025-07-20T05:33:58.453Z","avatar_url":"https://github.com/althk.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"## In-Process Messaging Queue\nAn extremely simple, in-process messaging queue that allows messages to be pushed to multiple consumers in the same process in a thread-safe way.\n\nThe API is very light, here's an example:\n\n```go\n\nimport github.com/althk/ipmq\n\nfunc main() {\n\tq := ipmq.New()  // get a new instance of type ipmq.MQ\n\n\tsomeConsumerFn := func(msg ipmq.Msg) error {\n\t\t// do something with msg\n\t}\n\n\tcancel, err := q.Register(someConsumerFn)\n\tif err != nil {\n\t\t// registration failed, do something\n\t}\n\n\t// if the consumer needs to unregister\n\t// simply call cancel\n\t// cancel()  // unregisters the consumer\n\n\t// push a msg to all registered consumers\n\tq.Push(\"some msg\")  // calls all consumers concurrently\n\n}\n\n```\n\nIf there is a need for multiple 'topics', simply instantiate multiple instances of `ipmq.MQ` via `ipmq.New`.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falthk%2Fipmq","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falthk%2Fipmq","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falthk%2Fipmq/lists"}