{"id":13419415,"url":"https://github.com/mercadona/rele","last_synced_at":"2025-12-14T15:53:23.016Z","repository":{"id":38419318,"uuid":"185781001","full_name":"mercadona/rele","owner":"mercadona","description":"Easy to use Google Pub/Sub","archived":false,"fork":false,"pushed_at":"2024-09-30T14:53:09.000Z","size":458,"stargazers_count":200,"open_issues_count":29,"forks_count":23,"subscribers_count":37,"default_branch":"master","last_synced_at":"2024-10-29T21:12:16.091Z","etag":null,"topics":["event-driven","google-cloud","hacktoberfest","pubsub","python"],"latest_commit_sha":null,"homepage":"https://mercadonarele.readthedocs.io/en/latest/index.html","language":"Python","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/mercadona.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.rst","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS.md","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-05-09T10:51:27.000Z","updated_at":"2024-10-22T12:35:48.000Z","dependencies_parsed_at":"2024-03-04T17:07:02.792Z","dependency_job_id":"5b9ce2bc-978e-4a51-82df-b8aeaf8ee9c5","html_url":"https://github.com/mercadona/rele","commit_stats":{"total_commits":189,"total_committers":26,"mean_commits":7.269230769230769,"dds":0.7089947089947091,"last_synced_commit":"61eb58e6410dbbc3e0c5be42ec68b0c3776ebc13"},"previous_names":[],"tags_count":37,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mercadona%2Frele","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mercadona%2Frele/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mercadona%2Frele/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mercadona%2Frele/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mercadona","download_url":"https://codeload.github.com/mercadona/rele/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243690113,"owners_count":20331726,"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":["event-driven","google-cloud","hacktoberfest","pubsub","python"],"created_at":"2024-07-30T22:01:15.688Z","updated_at":"2025-12-14T15:53:22.967Z","avatar_url":"https://github.com/mercadona.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n    \u003cimg src=\"docs/_static/rele_logo.png\" align=\"center\" height=\"200\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003cstrong\u003e\n        Relé makes integration with Google PubSub straightforward and easy.\n    \u003c/strong\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://travis-ci.org/mercadona/rele\"\u003e\n        \u003cimg src=\"https://travis-ci.org/mercadona/rele.svg?branch=master\"\n             alt=\"Build Status\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://mercadonarele.readthedocs.io/en/latest/?badge=latest\"\u003e\n        \u003cimg src=\"https://readthedocs.org/projects/mercadonarele/badge/?version=latest\"\n             alt=\"Read the Docs\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://codecov.io/gh/mercadona/rele\"\u003e\n        \u003cimg src=\"https://codecov.io/gh/mercadona/rele/branch/master/graph/badge.svg\"\n             alt=\"Code Coverage\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://pypi.org/project/rele/\"\u003e\n        \u003cimg alt=\"PyPI - Python Version\" src=\"https://img.shields.io/pypi/pyversions/rele.svg\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://pypi.org/project/rele/\"\u003e\n        \u003cimg alt=\"PyPI - Downloads\" src=\"https://img.shields.io/pypi/dm/rele\"\u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n\n\n## Motivation and Features\n\nThe [Publish-Subscribe pattern](https://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern) \nand specifically the Google Cloud [Pub/Sub library](https://pypi.org/project/google-cloud-pubsub/) \nare very powerful tools but you can easily cut your fingers on it. Relé makes integration \nseamless by providing Publisher, Subscriber and Worker classes with the following features:\n\n* Powerful Publishing API\n* Highly Scalable Worker\n* Intuitive Subscription Management\n* Easily Extensible Middleware\n* Ready to go Django/Flask integration\n* CLI\n* And much more!\n\n## What it looks like\n\n```python\n# Publish to the topic\nimport rele\n\nrele.publish(topic='photo-uploaded', data={'customer_id': 123})\n\n# Subscribe to the Pub/Sub topic\nfrom rele import sub\n\n@sub(topic='photo-uploaded')\ndef photo_uploaded(data, **kwargs):\n    print(f\"Customer {data['customer_id']} has uploaded an image\")\n```\n\n## What's in the name\n\n\"Relé\" is Spanish for *relay*, a technology that \n[has played a key role](https://technicshistory.wordpress.com/2017/01/29/the-relay/) in \nhistory in the evolution of communication and electrical technology, including the telegraph, \ntelephone, electricity transmission, and transistors.\n\n## Install\n\nRelé supports Python 3.6+ and installing via ``pip``\n\n`pip install rele`\n\nor with Django integration\n\n`pip install rele[django]`\n\nor with Flask integration\n\n`pip install rele[flask]`\n\n## Quickstart\n\n[Please see our documentation to get started.](https://mercadonarele.readthedocs.io/en/latest/guides/basics.html) \n\nYou can also read more about it [here](https://medium.com/mercadona-tech/announcing-rel%C3%A9-c2d0540af3b9)\n\n----\n\n## Running Tests\n\nDoes the code actually work?\n\n      make test\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmercadona%2Frele","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmercadona%2Frele","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmercadona%2Frele/lists"}