{"id":17217499,"url":"https://github.com/dotunj/pvent","last_synced_at":"2025-04-13T23:23:47.304Z","repository":{"id":200299847,"uuid":"705217726","full_name":"Dotunj/pvent","owner":"Dotunj","description":"Pvent is a CLI tool for sending messages across different message brokers.","archived":false,"fork":false,"pushed_at":"2025-02-16T22:47:15.000Z","size":42,"stargazers_count":9,"open_issues_count":2,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-27T13:40:25.775Z","etag":null,"topics":["kafka","message-brokers","pubsub","sqs"],"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/Dotunj.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-10-15T11:48:43.000Z","updated_at":"2025-02-16T22:47:19.000Z","dependencies_parsed_at":"2023-10-16T13:56:50.356Z","dependency_job_id":"63111bde-60ad-4596-844b-b988eaaa030d","html_url":"https://github.com/Dotunj/pvent","commit_stats":null,"previous_names":["dotunj/pvent"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dotunj%2Fpvent","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dotunj%2Fpvent/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dotunj%2Fpvent/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dotunj%2Fpvent/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Dotunj","download_url":"https://codeload.github.com/Dotunj/pvent/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248795185,"owners_count":21162726,"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":["kafka","message-brokers","pubsub","sqs"],"created_at":"2024-10-15T03:44:11.379Z","updated_at":"2025-04-13T23:23:47.245Z","avatar_url":"https://github.com/Dotunj.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"##  Pvent\n\nPvent is a powerful and flexible CLI tool designed for sending events seamlessly across multiple message brokers. It simplifies event-driven communication by providing a unified interface for interacting with different messaging systems. Currently, Pvent supports Google Pub/Sub, Kafka, Amazon SQS, and RabbitMQ, making it a valuable tool for developers working with distributed systems and microservices.\n\nWith Pvent, users can easily publish and manage events across these platforms without needing to switch between different SDKs or APIs. Whether you are integrating with cloud-based messaging services or on-premise brokers, Pvent offers a streamlined experience for efficient event transmission. Future updates aim to expand support for additional message brokers, enhancing its versatility even further.\n\n### Installation\nTo install Pvent using homebrew, you can run the following commands:\n\n```bash\nbrew tap dotunj/tools\nbrew install dotunj/tools/pvent\n```\nYou can also check the [releases section](https://github.com/Dotunj/pvent/releases) to download the binary for your OS.\n\n### Getting Started\n\nTo get started with using Pvent, you need to provide your message brokers credentials in a config file.\n\nAn example `pvent.json` config file looks like:\n\n```json\n{\n  \"type\": \"sqs\",\n  \"sqs\": {\n    \"access_key_id\": \"\u003caccess-key-id\u003e\",\n    \"secret_access_key\": \"\u003csecret-access-key\u003e\",\n    \"region\": \"\u003cregion\u003e\",\n    \"queue_name\": \"\u003cqueue-name\u003e\"\n  },\n  \"kafka\": {\n    \"address\": \"\u003caddress\u003e\",\n    \"topic\": \"\u003ctopic\u003e\",\n    \"auth\": {\n      \"tls\": true,\n      \"type\": \"scram\",\n      \"hash\": \"SHA256\",\n      \"username\": \"\u003cusername\u003e\",\n      \"password\": \"\u003cpassword\u003e\"\n    }\n  },\n  \"google\": {\n    \"project_id\": \"\u003cproject-id\u003e\",\n    \"topic_name\": \"\u003ctopic-name\u003e\"\n  },\n  \"rabbitmq\": {\n    \"dsn\": \"\u003cdsn\u003e\",\n    \"queue_name\": \"\u003cqueue-name\u003e\"\n  }\n}\n```\nUsing the CLI, you can now run:\n\n```bash\npvent dispatch --target payload.json --rate 1\n```\nIf you're using Google Pub/Sub, you'll need to expose the path to your service account credentials file as an environment variable\n\n```bash\nexport GOOGLE_APPLICATION_CREDENTIALS=\"/Users/dotunj/Documents/certs/service.json\" \n```\n\n\n### CLI Usage Manual\n```\nUsage: pvent \u003ccommand\u003e [command flags]\n\ndispatch command:\n  - type string\n        Message Brokers Type (sqs, google, kafka, rabbitmq)\n  - rate int\n        Total number of events to send\n  - target string\n        Path to JSON payload to dispatch\n  - config\n       Path to Pvent config file\n```\n\n### License\nThe MIT License (MIT). Please see [License File](LICENSE.md) for more information.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdotunj%2Fpvent","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdotunj%2Fpvent","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdotunj%2Fpvent/lists"}