{"id":18758559,"url":"https://github.com/rollulus/kafcat","last_synced_at":"2025-04-13T02:23:31.173Z","repository":{"id":144210945,"uuid":"64161422","full_name":"rollulus/kafcat","owner":"rollulus","description":"Tool for Kafka","archived":false,"fork":false,"pushed_at":"2018-04-20T14:27:48.000Z","size":49,"stargazers_count":11,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-10T06:06:42.418Z","etag":null,"topics":["debugging","diagnostics","kafka","tool","topic"],"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,"icon_url":"https://github.com/rollulus.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":"2016-07-25T19:17:35.000Z","updated_at":"2024-04-29T17:09:32.000Z","dependencies_parsed_at":"2023-08-16T02:47:28.785Z","dependency_job_id":null,"html_url":"https://github.com/rollulus/kafcat","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rollulus%2Fkafcat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rollulus%2Fkafcat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rollulus%2Fkafcat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rollulus%2Fkafcat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rollulus","download_url":"https://codeload.github.com/rollulus/kafcat/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248655015,"owners_count":21140410,"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":["debugging","diagnostics","kafka","tool","topic"],"created_at":"2024-11-07T17:46:50.504Z","updated_at":"2025-04-13T02:23:31.165Z","avatar_url":"https://github.com/rollulus.png","language":"Go","readme":"[![Build Status](https://travis-ci.org/rollulus/kafcat.svg?branch=master)](https://travis-ci.org/rollulus/kafcat)\n[![Go Report Card](https://goreportcard.com/badge/github.com/rollulus/kafcat)](https://goreportcard.com/report/github.com/rollulus/kafcat)\n\n# Kafcat\n\nKafcat is supposed to be(come) the swiss army knife for Apache Kafka. It allows you to read messages from and write messages to topics.\n\nKafcat is a single statically linked binary. That means that you can just `curl` it into your containers or onto your VMs and go.\n\nTLS is supported.\n\n# Installation\n\nGet a pre-built Linux/macOS binary from the [releases](https://github.com/rollulus/kafcat/releases) or DIY:\n\n    make bootstrap build\n\n# Examples\n\nTo see what is exactly in a topic since 5 minutes ago:\n\n    $ kafcat cat tweets --since=5m\n    key: \"\"\n    value: |\n      00000000  00 00 00 00 01 80 80 ab  d9 ff c2 a6 95 18 02 38  |...............8|\n      00000010  32 30 31 37 2d 30 36 2d  30 32 54 31 37 3a 30 31  |2017-06-02T17:01|\n      00000020  3a 32 38 2e 30 30 30 2b  30 30 30 30 aa 9d df be  |:28.000+0000....|\n      000000e0  02 00 02 00 00 02 02 e8  bf 93 05 02 22 42 42 43  |............\"BBC|\n      000000f0  20 42 72 65 61 6b 69 6e  67 20 4e 65 77 73 02 16  | Breaking News..|\n      00000100  42 42 43 42 72 65 61 6b  69 6e 67 00              |BBCBreaking.|\n    topic: tweets\n    partition: 0\n    offset: 101\n    timestamp: 2017-06-02T19:01:28.741+02:00\n\nTo replay messages from one topic into another:\n\n    $ kafcat cat some-existing-topic --since=5m | kafcat produce my-new-topic\n\nTo get a quick overview of available topics:\n\n    $ kafcat topics\n    - name: tweets\n    - name: _schemas\n\nTo get more in-depth topic information:\n\n    $ kafcat topics -a\n    - name: tweets\n      partitions:\n        0:\n          leader:\n            id: 0\n            address: some-hostname:9092\n          offsets:\n            oldest: 0\n            newest: 883\n          writable: true\n          replicas: [0]\n          insyncreplicas: [0]\n\n# Commands\n\n    $ kafcat --help\n    The pretended Swiss army knife for Apache Kafka\n\n    Usage:\n      kafcat [command]\n\n    Available Commands:\n      cat         Shows contents of topics\n      help        Help about any command\n      produce     Produce messages to Kafka\n      topics      List available topics\n      version     Displays version information\n\n    Flags:\n      -b, --broker-list string   brokers (default \"localhost:9092\")\n          --client-cert string   filename of the client certificate in PEM format\n          --client-key string    filename of the client's private key in PEM format\n      -h, --help                 help for kafcat\n      -w, --log-client           enable sarama's (underlying kafka client) log to stderr\n          --root-ca string       filename of the root certificate in PEM format\n      -v, --verbose              be verbose\n\n    Use \"kafcat [command] --help\" for more information about a command.\n\n## kafcat cat\n\nShows contents of topics\n\n### Usage\n\n    $ kafcat cat --help\n    Shows contents of topics\n\n    Usage:\n      kafcat cat \u003ctopic\u003e[:partition[,partition]*] [flags]\n\n    Flags:\n      -f, --follow         don't quit on end of log; keep following the topic\n      -s, --since string   only return logs newer than a relative duration like 5s, 2m, or 3h, or shorthands 0 and now\n\n    Global Flags:\n      -b, --broker-list string   brokers (default \"localhost:9092\")\n          --client-cert string   filename of the client certificate in PEM format\n          --client-key string    filename of the client's private key in PEM format\n          --root-ca string       filename of the root certificate in PEM format\n      -v, --verbose              be verbose\n\n### Example\n\n    $ kafcat cat tweets --since=5m\n    key: \"\"\n    value: |\n      00000000  00 00 00 00 01 80 80 ab  d9 ff c2 a6 95 18 02 38  |...............8|\n      00000010  32 30 31 37 2d 30 36 2d  30 32 54 31 37 3a 30 31  |2017-06-02T17:01|\n      00000020  3a 32 38 2e 30 30 30 2b  30 30 30 30 aa 9d df be  |:28.000+0000....|\n      00000030  02 02 14 44 61 75 6e 74  6c 65 73 73 2e 02 14 4c  |...Dauntless...L|\n      00000040  69 76 5f 52 65 6e 6e 69  65 00 00 aa 02 f4 0a d2  |iv_Rennie.......|\n      00000050  e9 01 02 fc 01 52 54 20  40 42 42 43 42 72 65 61  |.....RT @BBCBrea|\n      00000060  6b 69 6e 67 3a 20 22 57  65 27 72 65 20 67 65 74  |king: \"We're get|\n      00000070  74 69 6e 67 20 6f 75 74  22 20 2d 20 50 72 65 73  |ting out\" - Pres|\n      00000080  69 64 65 6e 74 20 44 6f  6e 61 6c 64 20 54 72 75  |ident Donald Tru|\n      00000090  6d 70 20 61 6e 6e 6f 75  6e 63 65 73 20 55 53 20  |mp announces US |\n      000000a0  69 73 20 77 69 74 68 64  72 61 77 69 6e 67 20 66  |is withdrawing f|\n      000000b0  72 6f 6d 20 74 68 65 20  50 61 72 69 73 20 63 6c  |rom the Paris cl|\n      000000c0  69 6d 61 74 65 20 61 67  72 65 65 6d 65 6e 74 e2  |imate agreement.|\n      000000d0  80 a6 20 02 04 65 6e 01  02 00 02 00 02 02 02 00  |.. ..en.........|\n      000000e0  02 00 02 00 00 02 02 e8  bf 93 05 02 22 42 42 43  |............\"BBC|\n      000000f0  20 42 72 65 61 6b 69 6e  67 20 4e 65 77 73 02 16  | Breaking News..|\n      00000100  42 42 43 42 72 65 61 6b  69 6e 67 00              |BBCBreaking.|\n    topic: tweets\n    partition: 0\n    offset: 101\n    timestamp: 2017-06-02T19:01:28.741+02:00\n\n## kafcat topics\n\nList topics and topic properties.\n\n### Usage\n\n    $ kafcat topics --help\n    Usage:\n      kafcat topics [flags]\n\n    Flags:\n      -a, --all          show all possible info; equals -olwrsp\n      -s, --isr          show broker ids of in-sync replicas; implies --partitions\n      -l, --leader       show leader information for each partition; implies --partitions\n      -o, --offsets      show oldest and newest offsets for each partition; implies --partitions\n      -p, --partitions   show partitions\n      -r, --replicas     show broker ids of replicas; implies --partitions\n      -w, --writable     show writable state (valid leader accepting writes) for each partition; implies --partitions\n\n    Global Flags:\n      -b, --broker-list string   brokers (default \"localhost:9092\")\n          --client-cert string   filename of the client certificate in PEM format\n          --client-key string    filename of the client's private key in PEM format\n          --root-ca string       filename of the root certificate in PEM format\n      -v, --verbose              be verbose\n\n### Example\n\n    $ kafcat topics -a\n    - name: tweets\n      partitions:\n        0:\n          leader:\n            id: 0\n            address: shuttle:9092\n          offsets:\n            oldest: 0\n            newest: 883\n          writable: true\n          replicas: [0]\n          insyncreplicas: [0]\n\n## kafcat produce\n\nProduce messages to Kafka\n\n### Usage\n\n    $ kafcat produce --help\n    Produce messages to Kafka from stdin. The input format is identical to the\n    output of kafcat's \"cat\" command. The key, value and topic fields are used;\n    partition, offset and timestamp are ignored. Topic can be overridden by\n    specifying it.\n\n    Usage:\n      kafcat produce [\u003ctopic\u003e] [flags]\n\n    Flags:\n      -h, --help   help for produce\n\n    Global Flags:\n      -b, --broker-list string   brokers (default \"localhost:9092\")\n          --client-cert string   filename of the client certificate in PEM format\n          --client-key string    filename of the client's private key in PEM format\n      -w, --log-client           enable sarama's (underlying kafka client) log to stderr\n          --root-ca string       filename of the root certificate in PEM format\n      -v, --verbose              be verbose\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frollulus%2Fkafcat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frollulus%2Fkafcat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frollulus%2Fkafcat/lists"}