{"id":17436049,"url":"https://github.com/borislavv/go-kafka","last_synced_at":"2026-01-30T06:04:52.541Z","repository":{"id":257820142,"uuid":"870083376","full_name":"Borislavv/go-kafka","owner":"Borislavv","description":"Kafka client implementation based on Sarama IBM (latest).","archived":false,"fork":false,"pushed_at":"2024-11-27T14:50:39.000Z","size":43,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-07T03:08:13.389Z","etag":null,"topics":["golang","kafka","library","sarama"],"latest_commit_sha":null,"homepage":"","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,"icon_url":"https://github.com/Borislavv.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-09T12:15:03.000Z","updated_at":"2024-11-27T14:50:12.000Z","dependencies_parsed_at":"2024-10-10T07:28:52.724Z","dependency_job_id":"bf84b2a6-90f6-4662-860b-87d909468679","html_url":"https://github.com/Borislavv/go-kafka","commit_stats":{"total_commits":8,"total_committers":2,"mean_commits":4.0,"dds":0.25,"last_synced_commit":"f611cfdb092da8fb66a7dcf34302077350ec183f"},"previous_names":["borislavv/go-kafka"],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Borislavv%2Fgo-kafka","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Borislavv%2Fgo-kafka/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Borislavv%2Fgo-kafka/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Borislavv%2Fgo-kafka/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Borislavv","download_url":"https://codeload.github.com/Borislavv/go-kafka/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228552378,"owners_count":17935803,"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","kafka","library","sarama"],"created_at":"2024-10-17T10:01:52.136Z","updated_at":"2026-01-30T06:04:47.492Z","avatar_url":"https://github.com/Borislavv.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Kafka client based on Sarama (Shopify)\n\nLightweight Go wrapper around Sarama Kafka, providing a clean and simplified API (ShapiFire) for working with producers and consumers. Helps you integrate Kafka into Go microservices with minimal boilerplate. Includes connection handling, configurable worker pool, graceful shutdown, and optional logging hooks. Perfect for highload event-driven systems that need reliable and scalable Kafka messaging.\n\n\n### Certs embedded filesystem:\n1. **cd: {root}/certs/dir/in/your/project**\n\n2. **mkdir certs**\n\n3. **cp /path/to/certs/on/host/\\* certs**\n\n4. **touch fs.go**\n\n5. **Pass the code into the created fs.go**\n\n\n\t\tpackage kafkacerts\n\n    \timport \"embed\"\n    \n    \t//go:embed certs/*.crt\n    \tvar EmbeddedFS embed.FS\n\n6. You must have such structure:\n\n    \t// pwd: {root}/certs/dir/in/your/project\n   \t\t.certs\n   \t\tfs.go\n\n### Usage:\n    ctx, cancel := context.WithCancel(context.Background())\n    defer cancel()\n\n\tkafkaCfg := kafkaconfig.Kafka{}\n\tif err := envcofig(\"\", \u0026kafkaCfg); err != nil {\n\t\tlogger.JsonRawLog(\"kafka: unable to init config\", loggerenum.FatalLvl, err)\n\t}\n\n\t// go get github.com/Borislavv/go-logger\n\tloggerCfg := loggerconfig.Config{}\n\tif err := envcofig(\"\", \u0026loggerCfg); err != nil {\n\t\tlogger.JsonRawLog(\"logger: unable to init config\", loggerenum.FatalLvl, err)\n\t\treturn\n\t}\n\n\tout, cancel, err := logger.NewOutput(loggerCfg)\n\tif err != nil {\n\t\tlogger.JsonRawLog(\"logger: unable to init output\", loggerenum.FatalLvl, err)\n\t\treturn\n\t}\n\tdefer cancel()\n\n\tlgr, cancel, err := logger.NewLogrus(loggerCfg, out)\n\tif err != nil {\n\t\tlogger.JsonRawLog(\"logger: unable to init logrus\", loggerenum.FatalLvl, err)\n\t\treturn\n\t}\n\tdefer cancel()\n\n\tclient, err := kafka.New(ctx, kafkaCfg, lgr, kafkacerts.EmbeddedFS)\n\tif err != nil {\n\t\tlogger.JsonRawLog(\"kafka: unable to init client (producer/consumer)\", loggerenum.FatalLvl, err)\n\t\treturn\n\t}\n    defer func() {\n        if err = client.Close(); err != nil {\n            logger.JsonRawLog(\"kafka: close error\", loggerenum.FatalLvl, err)\n        }\n    } \n\n\tgo func() {\n\t\ttopics := []string{\"example-topic\", \"another-example-topic\"}\n\n\t\tfor msg := range client.Consume(ctx, topics) {\n\t\t\tlgr.InfoMsg(ctx, string(msg.Value), nil)\n\t\t}\n\t}()\n\n\tif err = client.Produce(\"example-topic\", \"hello-world-from-example-topic\"); err != nil {\n\t\tlogger.JsonRawLog(\"kafka: produce error\", loggerenum.FatalLvl, err)\n\t}\n\n\tif err = client.Produce(\"another-example-topic\", \"hello-world-from-another-example-topic\"); err != nil {\n\t\tlogger.JsonRawLog(\"kafka: produce error\", loggerenum.FatalLvl, err)\n\t}\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fborislavv%2Fgo-kafka","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fborislavv%2Fgo-kafka","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fborislavv%2Fgo-kafka/lists"}