{"id":13741101,"url":"https://github.com/GuangTianLi/grpcalchemy","last_synced_at":"2025-05-08T21:32:25.840Z","repository":{"id":56654038,"uuid":"161167160","full_name":"GuangTianLi/grpcalchemy","owner":"GuangTianLi","description":"The Python micro framework for building gPRC application.","archived":false,"fork":false,"pushed_at":"2024-09-12T10:21:47.000Z","size":492,"stargazers_count":84,"open_issues_count":1,"forks_count":4,"subscribers_count":8,"default_branch":"master","last_synced_at":"2024-09-12T11:41:27.126Z","etag":null,"topics":["grpc","grpc-python","grpc-server","python3"],"latest_commit_sha":null,"homepage":"https://grpcalchemy.readthedocs.io","language":"Python","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/GuangTianLi.png","metadata":{"files":{"readme":"README.rst","changelog":"HISTORY.rst","contributing":"CONTRIBUTING.rst","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":"AUTHORS.rst","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-12-10T11:51:37.000Z","updated_at":"2024-09-11T08:40:25.000Z","dependencies_parsed_at":"2024-09-12T11:18:39.714Z","dependency_job_id":"76f118d8-ae0c-4386-be3e-8bd0db024768","html_url":"https://github.com/GuangTianLi/grpcalchemy","commit_stats":{"total_commits":416,"total_committers":3,"mean_commits":"138.66666666666666","dds":0.5168269230769231,"last_synced_commit":"475518846112d491dd04832d44e4bd094d603a48"},"previous_names":[],"tags_count":35,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GuangTianLi%2Fgrpcalchemy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GuangTianLi%2Fgrpcalchemy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GuangTianLi%2Fgrpcalchemy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GuangTianLi%2Fgrpcalchemy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GuangTianLi","download_url":"https://codeload.github.com/GuangTianLi/grpcalchemy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224745237,"owners_count":17362814,"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":["grpc","grpc-python","grpc-server","python3"],"created_at":"2024-08-03T04:00:55.441Z","updated_at":"2024-11-15T11:30:53.573Z","avatar_url":"https://github.com/GuangTianLi.png","language":"Python","funding_links":[],"categories":["Language-Specific"],"sub_categories":["Python"],"readme":"===========\ngRPCAlchemy\n===========\n\n\n.. image:: https://img.shields.io/pypi/v/grpcalchemy.svg\n        :target: https://pypi.python.org/pypi/grpcalchemy\n\n.. image:: https://github.com/GuangTianLi/grpcalchemy/workflows/test/badge.svg\n        :target: https://github.com/GuangTianLi/grpcalchemy/actions\n\n.. image:: https://readthedocs.org/projects/grpcalchemy/badge/?version=latest\n        :target: https://grpcalchemy.readthedocs.io/en/latest/?badge=latest\n        :alt: Documentation Status\n\n.. image:: https://img.shields.io/pypi/pyversions/grpcalchemy.svg\n        :target: https://pypi.org/project/grpcalchemy/\n\n.. image:: https://codecov.io/gh/GuangTianLi/grpcalchemy/branch/master/graph/badge.svg\n  :target: https://codecov.io/gh/GuangTianLi/grpcalchemy\n\n\n\nThe Python micro framework for building gPRC application based on official `gRPC \u003chttps://github.com/grpc/grpc\u003e`_ project.\n\n\n* Free software: MIT license\n* Documentation: https://grpcalchemy.readthedocs.io.\n\nInstallation\n----------------\n\n.. code-block:: shell\n\n    $ pipenv install grpcalchemy\n    ✨🍰✨\n\nOnly **Python 3.6+** is supported.\n\nExample\n--------\n\nServer\n========\n\n.. code-block:: python\n\n    from grpcalchemy.orm import Message, StringField\n    from grpcalchemy import Server, Context, grpcmethod\n\n    class HelloMessage(Message):\n        text: str\n\n    class HelloService(Server):\n        @grpcmethod\n        def Hello(self, request: HelloMessage, context: Context) -\u003e HelloMessage:\n            return HelloMessage(text=f'Hello {request.text}')\n\n    if __name__ == '__main__':\n        HelloService.run()\n\n\nThen Using gRPC channel to connect the server:\n\n.. code-block:: python\n\n    from grpc import insecure_channel\n\n    from protos.helloservice_pb2_grpc import HelloServiceStub\n    from protos.hellomessage_pb2 import HelloMessage\n\n    with insecure_channel(\"localhost:50051\") as channel:\n        response = HelloServiceStub(channel).Hello(\n            HelloMessage(text=\"world\")\n        )\n\nFeatures\n----------\n\n- gPRC Service Support\n- gRPC Message Support\n    - Scalar Value Types\n    - Message Types\n    - Repeated Field\n    - Maps\n- Define Message With Type Hint\n- Middleware\n- App Context Manger\n- Error Handler Support\n- Streaming Method Support\n- gRPC-Health Checking and Reflection Support (Alpha)\n- Multiple Processor Support\n\nTODO\n-------\n\n- Test Client Support\n- Async Server Support\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FGuangTianLi%2Fgrpcalchemy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FGuangTianLi%2Fgrpcalchemy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FGuangTianLi%2Fgrpcalchemy/lists"}